Javascript 尝试使用 string.replace() 和正则表达式作为列表值

标签 javascript jquery regex

我正在尝试执行指定的正则表达式

在 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/

相关文章:

javascript - 显示多张幻灯片,使用 Bootstrap 3.3.5 轮播移动一张

python - 如何从字符串列表中删除单词列表

php - 如何将主题标签文本转换为主题标签超链接?

java - 服务器和浏览器的时间差

javascript - 多标签点击功能

javascript - 如何改进我的脚本不显示带有用户名字段的密码字段

javascript - 保证Javascript中的异步请求回调顺序

Jenkins 管道中的正则表达式

javascript - AngularJS 在指令中输出 Javascript

javascript - Ajax 在 IE10 中不触发