如何匹配不被引号括起来的字符串中的特定单词?

时间:2012-07-27 00:47:48

标签: javascript regex

作为一个例子,我有这个字符串:aaa bbb" aaa bbb ccc" bbb" ddd"

我想匹配bbb,但前提是它不在引号内使用正则表达式。

有人有想法吗?

更新

我想我应该更具体一点,我会修改我的例子:

假设我有一个html标签,我希望获取一个属性及其值:

<input type="text" id="textbox" myattr="myvalue" name="myattr test" />

我需要匹配“myattr”和“myvalue”这个词,但只有当myattr没有被引号括起来并且myvalue绝对是myattr的值时才会匹配。

3 个答案:

答案 0 :(得分:0)

试试这个:“[^ b”] (bbb)[^“] ”......

答案 1 :(得分:0)

匹配引用的段落或bbb,然后检查你得到了什么。

var s = 'aaa bbb "aaa bbb ccc" bbb "ddd"';

var s = s.replace(/("[^"]*"|bbb)/g, function(m){
    if (m == 'bbb') {
        return "xxx";
    } else {
        return m;
    }
});

alert(s);

演示:http://jsfiddle.net/Guffa/Q4gB8/

(如果bbb未知(正则表达式本身),则可以检查引号。)

答案 2 :(得分:0)

为什么不能在attr('myattr')元素上使用input

an example jsfiddle;

另外,我建议调查以下内容:

为什么在其他人准备好您可以使用的代码时重新发明轮子?