什么是.match("")和.match(/ ^ $ /)之间的区别?

时间:2018-02-23 08:24:51

标签: javascript jquery regex

我遇到问题,我在某个元素中检查空HTML内容。我用的时候

someElement.trim().match("")

即使HTML内容为空,我有时也会得到结果。我把它改成了

someElement.trim().match(/^$/)

现在似乎总是返回正确的布尔值。

两者有什么区别?

1 个答案:

答案 0 :(得分:2)

match('')match(new RegExp(''))相同,而new RegExp('')返回/(?:)/,其匹配空字符串,因为如果匹配的子字符串返回true,则不会锚定。而/^$/已锚定^与开头匹配,$与输入结束相匹配。

其他例子:

# true
'hello'.match('h')
'hello'.match('e')

# false
'hello'.match('^e$')