javascript - new RegExp里的值为空,竟然可以全文匹配,这是为什么?
本文介绍了javascript - new RegExp里的值为空,竟然可以全文匹配,这是为什么?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
问 题
<input type="text" id="aa">
<div class="bb"></div>
var arr=['tom','jack','mary','peter','jomo']
$('#aa').keyup(function(){
var patt1 = new RegExp($('#aa').val());
var cc=''
for(var i=0;i<arr.length;i++){
if(patt1.test(arr[i])){
cc+=arr[i]+','
}
}
$('.bb').html(cc)
})
问题描述:当我输入a时,可是匹配出jack,mary。
但是当我把输入框里的值清空,竟然可以匹配出tom,jack,mary,peter,jomo, 竟然把所有的都匹配出来了。
这是为什么呢?我觉得应该是啥都匹配不到才对额。
在线代码,请大家查阅
http://jsbin.com/xilepoxuzi/e...
解决方案
清空了的话,说明是匹配空字符串,你创建的正则对象如下:
var patt1 = new RegExp('');
由于每个字符串都有空字符,所以就匹配了
这篇关于javascript - new RegExp里的值为空,竟然可以全文匹配,这是为什么?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文