"AND" 在 Javascript 正则表达式中......我错过了什么?
"AND" in Javascript regex... what am I missing?
我正在研究一个正则表达式,如果匹配的词以任何顺序出现,它会 return 为真。
这种方法(在这里讨论:Regular Expressions: Is there an AND operator?)
(?=.*tag1)(?=.*tag2)
在 Ruby 中匹配 tag1 tag2
和 tag2 tag1
(http://rubular.com/r/374706hkft),但 在 [=] 中不起作用 35=]。有什么想法吗?
编辑:"Does not work in JS" 我的意思是
"tag1 tag2".match(/(?=.*tag1)(?=.*tag2)/)
returns [""]
.
这个问题的答案指出正则表达式以
的格式工作
/(?=.*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
我正在研究一个正则表达式,如果匹配的词以任何顺序出现,它会 return 为真。
这种方法(在这里讨论:Regular Expressions: Is there an AND operator?)
(?=.*tag1)(?=.*tag2)
在 Ruby 中匹配 tag1 tag2
和 tag2 tag1
(http://rubular.com/r/374706hkft),但 在 [=] 中不起作用 35=]。有什么想法吗?
编辑:"Does not work in JS" 我的意思是
"tag1 tag2".match(/(?=.*tag1)(?=.*tag2)/)
returns [""]
.
这个问题的答案指出正则表达式以
的格式工作/(?=.*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