无法替换字符串中的子字符串

时间:2014-07-19 10:46:32

标签: javascript jquery

我无法替换字符串中的子字符串:

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");

我想知道为什么modifiedsource具有相同的价值?

4 个答案:

答案 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");