我无法替换字符串中的子字符串:
var source = "div.col-md-4.fields:visible:eq(0) div.panel-body select:eq(0)";
var modified = source.replace(/visible:eq(0)/g, "1234");
我想知道为什么modified
与source
具有相同的价值?
答案 0 :(得分:4)
您不应在此处使用 regular expressions
,而应使用简单的字符串替换功能。它会运行得更快,并且正常的表达式不适合像这样的简单任务,因为 它们将比简单replace
函数运行稍慢 。在这里使用 regular expressions
就像使用nuke打开一个水瓶,而不是简单,如果开发人员看到这个代码他会喜欢简单。
将第二行更改为此行:
var modified = source.replace("visible:eq(0)", "1234");
答案 1 :(得分:1)
您需要转义括号
var source = "div.col-md-4.fields:visible:eq(0) div.panel-body select:eq(0)";
var modified = source.replace(/visible:eq\(0\)/g, "1234");
console.log(source);
console.log(modified);
答案 2 :(得分:0)
你只需要逃避你的角色演示:http://jsfiddle.net/cvW24/1/
希望休息帮助事业:)
如果你热衷于:
<强>码强>
var source = "div.col-md-4.fields:visible:eq(0) div.panel-body select:eq(0)";
var modified = source.replace(/visible:eq\(0\)/g, "1234");
alert(modified);
答案 3 :(得分:0)
因为正则表达式与字符串不匹配。你需要转义括号。
var modified = source.replace(/visible:eq\(0\)/g, "1234");