我正在尝试执行指定的正则表达式
在 php 中我可以做:
'/[lg|sm|md|xs]/'
将匹配或 lg、或 sm、或 md 或 xs 一次。
在 javascript 上,我无法使其工作属性。
var href = $(this).attr('href');
var t = href.replace('[lg]|[sm]|[md]|[sx]', 'add'); //not working
var t = href.replace('[lg|sm|md|sx]', 'add'); //not working
var t = href.replace('/[lg|sm|md|sx]/', 'add'); //not working
var t = href.replace('/lg|sm|md|sx/', 'add'); //not working
对于如下 URL:
href="/img/galeria/lg/duplo-standart/foto1.jpg"
我需要的只是替换 href 上的“lg”并更改为“add”。
感谢帮助。
最佳答案
您需要使用正则表达式符号或对象,以便
var t = href.replace(/(lg|sm|md|sx)/, 'add');
或
var t = href.replace(new RegExp('(lg|sm|md|sx)'), 'add');
您正在做的是字符串替换,因此它将搜索精确的字符串匹配而不是正则表达式匹配
关于Javascript 尝试使用 string.replace() 和正则表达式作为列表值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23464446/