Javascript 正则表达式:匹配部分或完整字符串

Javascript 正则表达式:匹配部分或完整字符串,javascript,regex,match,Javascript,Regex,Match,我有一个小脚本,它从文本输入中获取值,并需要部分或完全匹配数组中的项 我现在正在努力学习正则表达式和语法,想知道我是否能帮你想一想 for (var i=0; i < liveFilterData.length; i+=1) { if (liveFilterData[i].match(liveFilter.val())) { alert(); } } for(变量i=0;i

我有一个小脚本,它从文本输入中获取值,并需要部分或完全匹配数组中的项

我现在正在努力学习正则表达式和语法,想知道我是否能帮你想一想

for (var i=0; i < liveFilterData.length; i+=1) {

    if (liveFilterData[i].match(liveFilter.val())) {
        alert();
    }
}
for(变量i=0;i
我需要liveFilter.val()和正则表达式来匹配当前数组项liveFilterData[I],因此如果有人在文本框中键入H或H,它会检查数组中是否有匹配项。如果他们输入He或He,那么它与Head、Header或heading匹配


对不起,我已经在网上浏览了很多关于如何构建正则表达式的内容,但是我没有找到答案。

我不确定我是否完全理解这个问题。
liveFilter.val()
是一个正则表达式,还是只是一个试图与数组中的任何值匹配的字符串?我猜您在文本框的keypress、keydown或keypress上有一个事件,并且您上面编写的代码在该事件的回调中运行。如果是这样,您可以做很多事情来将值转换为适当的正则表达式:
“^”+liveFilter.val()
,因为您在循环中使用正则表达式,所以应该使用
新正则表达式对其进行预编译,这样您的循环看起来像:

//the i in the second param here is a flag indicating case insensitive
//a hat '^' in regex means 'beginning of the input'
regex = new RegExp("^"+liveFilter.val(), i);
for (var i=0; i < liveFilterData.length; i+=1) {
    // regex.test uses the precompiled regex, and determines if there is a match 
    if (regex.test(liveFilterData[i])) {
        alert("matched " + i);
    }
}
//这里第二个参数中的i是一个表示不区分大小写的标志
//正则表达式中的hat“^”表示“输入的开始”
regex=newregexp(“^”+liveFilter.val(),i);
对于(变量i=0;i

希望这有帮助

简单的字符串比较应该做到:

for (var v, i = liveFilterData.length; i--;) { 
    if (liveFilterData[i].slice (0, (v = liveFilter.val().toLowerCase ()).length) === v) {
        alert();
    }
}
liveFilterData应包含小写的单词