test()在javascript中无法正常工作

时间:2015-07-13 07:50:13

标签: javascript

这是我的代码:

$('#filter').on('input', function(event) {
    var options = $('#Id').empty().scrollTop(0).data("options");
    var search = $.trim($('#Id').val());
    var regex = new RegExp(search, 'gi');
    $.each(options,function(key,option){
        console.log(regex.test(option.text));
        if (regex.test(option.text)){
            $('#Id').append("<option value="+option.value+" "+((option.disabled ==1)?'disabled':'')+">"+option.text+"</option>");
        }
    }.bind(this));
}.bind(this));

控制台为fullstop返回true(&#34;。&#34;)虽然选项没有fullstop(&#34;。&#34;)。

1 个答案:

答案 0 :(得分:1)

regular expressions中有许多具有特殊含义的字符,包括与任何字符匹配的.

如果你想在search中找到字面上的内容(但不区分大小写),你可能会考虑根本不使用正则表达式,只需简单的字符串方法:

var lcSearch = search.toLowerCase();

然后在循环中

if (option.text.toLowerCase().indexOf(lcSearch) !== -1)

E.g:

$('#filter').on('input', function(event) {
        var options = $('#Id').empty().scrollTop(0).data("options");
        var search = $.trim($('#Id').val());
        var lcSearch = search.toLowerCase();
         $.each(options,function(key,option){
            if (option.text.toLowerCase().indexOf(lcSearch) !== -1){
                $('#Id').append("<option value="+option.value+" "+((option.disabled ==1)?'disabled':'')+">"+option.text+"</option>");
            }
        }.bind(this));
    }.bind(this));