test()在javascript中工作不正常

test()在javascript中工作不正常,javascript,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){ co

这是我的代码:

$('#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));
$('filter')。在('input',函数(event)上{
var options=$('#Id').empty().scrollTop(0).data(“options”);
var search=$.trim($('#Id').val());
var regex=new RegExp(搜索“gi”);
$。每个(选项、功能(键、选项){
log(regex.test(option.text));
if(regex.test(option.text)){
$('#Id')。追加(“+option.text+”);
}
}.约束(这个);
}.约束(这个);

尽管选项中没有fullstop(“.”),但控制台会为fullstop(“.”)返回true。

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

如果你想在代码> >搜索(但不区分大小写)中找到什么,你可能会考虑根本不使用正则表达式,只是简单的字符串方法:

var lcSearch = search.toLowerCase();
然后在循环中

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

$('filter')。在('input',函数(event)上{
var options=$('#Id').empty().scrollTop(0).data(“options”);
var search=$.trim($('#Id').val());
var lcSearch=search.toLowerCase();
$。每个(选项、功能(键、选项){
if(option.text.toLowerCase().indexOf(lcSearch)!=-1){
$('#Id')。追加(“+option.text+”);
}
}.约束(这个);
}.约束(这个);

在正则表达式中表示任何字符。您想在正则表达式中执行什么操作。我的意思是,你需要测试什么条件?它就像一个过滤器,如果用户在过滤器中键入,匹配的值将被显示
$('#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));