[英]How to create a regular expression to find a substring within a larger string?
如果我有一个字符串,例如:“Consensus IRIS 2010-11 Series 6”
如果有人在文本框中键入该字符串的一部分,例如“iris”,我如何识别原始字符串中的子字符串?
我有以下内容,但它仅在字符串以文本框中的值开头时匹配。
var txt= $('#txtName').val();
var regExp = new RegExp("^" + txt, "i");
var t = item.name.replace(regExp, "<span class='matched-text'>" + txt + "</span>");
旁注:我对正则表达式感到困惑!
因为你的正则表达式以^
开头,它只会匹配以txt
的值开头的序列。 删除^
然后设置。
你的问题来自这样一个事实,即在你的正则表达式中加上"^"
使它只匹配字符串/文本框的开头。 删除它,它应该正常的子串的工作。
但是,如果有人在搜索框中键入正则表达式,则代码可能会产生意外影响。 例如,如果有人输入\\w
,则每个字母和数字都会突出显示。 该网站有助于更多地了解正则表达式。
试试这个:
var regExp = new RegExp(txt, "i");
或这个:
var regExp = new RegExp("\b"+txt"\b", "i");
第一个将匹配字符串中的任何位置的txt
,即使在单词的中间。 第二个不会在一个单词的中间匹配。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.