Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/459.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 我可以使用正则表达式删除列表项吗?_Javascript_Jquery - Fatal编程技术网

Javascript 我可以使用正则表达式删除列表项吗?

Javascript 我可以使用正则表达式删除列表项吗?,javascript,jquery,Javascript,Jquery,我正在构建一个选择列表,如下所示: var releases = data.suites.split(':'); $.each(releases, function(i, val){ if (val) { var info = val.split('-'); $('#testList').append('<option value="'+info[0]+'">'+info[1]+'</option>'); } }); va

我正在构建一个选择列表,如下所示:

var releases = data.suites.split(':');
$.each(releases, function(i, val){
    if (val) {
        var info = val.split('-');
        $('#testList').append('<option value="'+info[0]+'">'+info[1]+'</option>');
    }
});
var releases=data.suites.split(“:”);
$。每个(版本、功能(i、val){
if(val){
var info=val.split('-');
$('#testList')。追加(''+info[1]+'');
}
});

每个条目的值和文本前面都有特定的文本。是否可以使用jquery和regex从我的列表中删除与此文本匹配的所有项目?

如果您只想阻止创建目标项目,请在循环中使用
.indexOf

如果要删除DOM中的现有元素,则可以基于属性值的开头进行DOM选择

  // Cache DOM selection!!! ;-)
var testlist = $('#testList');

    // remove existing elements where the "name" starts with "some_text"
testlist.find('option[name^="some_text"]').remove();

var releases = data.suites.split(':');
$.each(releases, function(i, val) {

       // Prevent creation when the val starts with "some_text"
    if (val && val.indexOf("some_text") !== 0) {
        var info = val.split('-');
        testlist.append('<option value="'+info[0]+'">'+info[1]+'</option>');
    }
});
//缓存DOM选择!!!;-)
var testlist=$(“#testlist”);
//删除“name”以“some_text”开头的现有元素
testlist.find('option[name^=“some_text”]”)。remove();
var releases=data.suites.split(“:”);
$。每个(版本、功能(i、val){
//当val以“某些文本”开头时阻止创建
if(val&&val.indexOf(“某些文本”)!==0){
var info=val.split('-');
testlist.append(“”+info[1]+“”);
}
});

是的,这是可能的。如果你用一个来匹配这个值,你甚至不需要正则表达式。我不明白。从原始字符串中删除它们?是否将它们从正在创建的
选项
元素中排除?从DOM中删除它们?请提供更多细节。是的,将它们从DOM和选项元素中删除。这样,您可能可以按照@FrédéricHamidi在循环之前的建议进行操作。要从正在创建的选项中排除它们,可以使用
.indexOf
查看该文本是否位于字符串的开头
if(val&&val.indexOf('foobar')!==0{…
如果目标文本位于字符串的开头,则
indexOf
将返回
0
索引。类似于:$('#testList')。删除($('option[name=“mytext”]).val();