我需要从某个字符串替换子字符串。我已经创建了更正的代码。但我不确定这是最好的方法。请看下面的代码:
var str = 'test ruby,ruby on rails,ruby,'
var substr = 'ruby';
var reg = new RegExp(',' + substr + ',|^' + substr + ',', 'gi');
str.replace(reg, ','); //returns "test ruby,ruby on rails,"
答案 0 :(得分:2)
你可以稍微缩短一下:
var reg = new RegExp('(^|,)' + substr + ',', 'gi');
答案 1 :(得分:1)
试试这个:
var reg = new RegExp("(^|,)" + substr + "(,|$)", "gi");
答案 2 :(得分:1)
除非您的子字符串是以编程方式生成的或基于用户输入,否则在我看来,如果您使用/ /
运算符在javascript中定义正则表达式,则更容易阅读。
因此,您可以将reg
重新定义为:
reg = /,ruby,|^ruby,/gi;
答案 3 :(得分:0)
要详细说明Sean提到的内容,如果您实际上是以编程方式生成字符串,则可能需要查看this SO question,它具有为javascript转义regexp字符串的函数。酷的东西!祝你好运:)