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应包含小写的单词