Javascript Regex:Dot.test()总是返回true,为什么?
为什么它(点)总是返回真值Javascript Regex:Dot.test()总是返回true,为什么?,javascript,regex,Javascript,Regex,为什么它(点)总是返回真值 var regExp = new RegExp('.', 'i'); alert(regExp.test('edee')) 请检查正则表达式中的fiddle点是否与任何字符匹配。像这样逃避它: var regExp = new RegExp('\\.', 'i'); alert(regExp.test('edee'))//False alert(regExp.test('e.dee')) //True 正则表达式中的表示任何字符..因此它将始终返回true匹配任何
var regExp = new RegExp('.', 'i');
alert(regExp.test('edee'))
请检查正则表达式中的fiddle点是否与任何字符匹配。像这样逃避它:
var regExp = new RegExp('\\.', 'i');
alert(regExp.test('edee'))//False
alert(regExp.test('e.dee')) //True
正则表达式中的
表示任何字符..因此它将始终返回true
匹配任何单个字符。要匹配
文字,请使用'\.
。要精确匹配一个字符,请使用定位<代码>^。$。另外,不需要i
标志。我还建议使用正则表达式字面语法。我们有什么方法可以像往常一样使用它吗?你能像往常一样定义
?如果你想包含
,那么你必须以\”的形式避开它。
@himanshupareek66,我刚才在告诉下一个投票人可能认为下一个投票的原因是什么。下一个投票人可能会这么想问题是并没有得到很好的研究
,但若表达式中有两个点,比如var regExp=newregexp('\\..','i');警报(regExp.test('ee.t'))则它工作错误..您必须转义每个点,因此如果要匹配“e..dee”,您需要:var regExp=new regExp('\\.\.\.''i');