Javascript正则表达式中的“AND”...我错过了什么?

时间:2015-04-04 00:07:57

标签: javascript regex regex-lookarounds

我正在研究正则表达式,如果匹配的单词以任何顺序存在,它将返回true。

这种方法(在此讨论:Regular Expressions: Is there an AND operator?

(?=.*tag1)(?=.*tag2)

在Ruby中匹配tag1 tag2tag2 tag1http://rubular.com/r/374706hkft),但在JavaScript中不起作用。有什么想法吗?

编辑:by"在JS"中不起作用我的意思是

"tag1 tag2".match(/(?=.*tag1)(?=.*tag2)/) 

返回[""]

这个问题的答案指出正则表达式的工作格式为

/(?=.*tag1)(?=.*tag2)/.test("tag1 tag2")

1 个答案:

答案 0 :(得分:2)

这个正则表达式在JavaScript中运行良好:



function check(s) {
    var found = /(?=.*tag1)(?=.*tag2)/.test(s);
    document.write(found + '<br>');
}

check('xxtag1xxxtag2xxxx'); // both found: true
check('xxtag2xxxtag1xxxx'); // both found: true
check('xxtag2xxxtag0xxxx'); // only one found: false
&#13;
&#13;
&#13;