我正在研究一个正则表达式,如果以任何顺序出现匹配的单词,它将返回true。
这种方法(在这里讨论:Regular Expressions: Is there an AND operator?)
(?=.*tag1)(?=.*tag2)
在Ruby中同时匹配
tag1 tag2
和tag2 tag1
(http://rubular.com/r/374706hkft),但在JavaScript中不起作用。有任何想法吗?编辑:通过“在JS中不起作用”我的意思是
"tag1 tag2".match(/(?=.*tag1)(?=.*tag2)/)
返回
[""]
。这个问题的答案指出,正则表达式的工作格式为
/(?=.*tag1)(?=.*tag2)/.test("tag1 tag2")
最佳答案
该正则表达式在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
关于javascript - Javascript正则表达式中的“AND”…我缺少什么?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/29441322/