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...


幕布斯7119047
浏览 558回答 1
1回答

慕村9548890

清空了的话,说明是匹配空字符串,你创建的正则对象如下:var&nbsp;patt1&nbsp;=&nbsp;new&nbsp;RegExp('');由于每个字符串都有空字符,所以就匹配了
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript