我正在研究正则表达式,如果匹配的单词以任何顺序存在,它将返回true。
这种方法(在此讨论:Regular Expressions: Is there an AND operator?)
(?=.*tag1)(?=.*tag2)
在Ruby中匹配tag1 tag2
和tag2 tag1
(http://rubular.com/r/374706hkft),但在JavaScript中不起作用。有什么想法吗?
编辑:by"在JS"中不起作用我的意思是
"tag1 tag2".match(/(?=.*tag1)(?=.*tag2)/)
返回[""]
。
这个问题的答案指出正则表达式的工作格式为
/(?=.*tag1)(?=.*tag2)/.test("tag1 tag2")
答案 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;