Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/361.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
&引用;及;在Javascript正则表达式中。。。我错过了什么?_Javascript_Regex_Regex Lookarounds - Fatal编程技术网

&引用;及;在Javascript正则表达式中。。。我错过了什么?

&引用;及;在Javascript正则表达式中。。。我错过了什么?,javascript,regex,regex-lookarounds,Javascript,Regex,Regex Lookarounds,我正在研究一个正则表达式,如果匹配的单词以任何顺序出现,它将返回true 这种方法(此处讨论:) 在Ruby中匹配tag1 tag2和tag2 tag1(),但在JavaScript中不起作用。有什么想法吗 编辑:我的意思是“在JS中不起作用” "tag1 tag2".match(/(?=.*tag1)(?=.*tag2)/) 返回[“”] 对此问题的回答指出,正则表达式以 /(?=.*tag1)(?=.*tag2)/.test("tag1 tag2") 该正则表达式在JavaScript

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

这种方法(此处讨论:)

在Ruby中匹配
tag1 tag2
tag2 tag1
(),但在JavaScript中不起作用。有什么想法吗

编辑:我的意思是“在JS中不起作用”

"tag1 tag2".match(/(?=.*tag1)(?=.*tag2)/) 
返回
[“”]

对此问题的回答指出,正则表达式以

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

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

功能检查{
发现的var=/(?=.*tag1)(?=.*tag2)/.测试;
document.write(找到+“
”); } 勾选('xxtag1xxxtag2xxxx');//两人都认为是真的 勾选('xxtag2xxxtag1xxxx');//两人都认为是真的
勾选('xxtag2xxxtag0xxxx');//只找到一个:false
我很难看出它在任何正则表达式引擎中是如何工作的,但是如果
match
返回一个数组(而不是
null
),它确实匹配!请注意,正则表达式与空字符串相匹配(后跟
tag1
tag2
),空字符串确实是输入的一部分。
/(?=.*tag1)(?=.*tag2)/.test('tag1 tag2')
有效,但
tag1 tag2.match(/(?=.*tag1)(?=.*tag2)/)返回
[]
。你能告诉我为什么一种格式返回的结果与另一种不同吗?@aaandre:test返回的是布尔值,而不是匹配结果。它们是不同的方法@aaandre:当字符串包含
tag1
tag2
时,模式匹配长度为零的字符串。
test
方法在存在匹配项且存在匹配项时返回
true
match
方法返回匹配项,长度为零的字符串就是匹配项。如果模式中包含的内容多于前瞻性匹配,则匹配内容将多于长度为零的字符串。
/(?=.*tag1)(?=.*tag2)/.test("tag1 tag2")