Javascript 如何创建正则表达式来查找较大字符串中的子字符串?

Javascript 如何创建正则表达式来查找较大字符串中的子字符串?,javascript,regex,Javascript,Regex,如果我有一个字符串,例如:“共识虹膜2010-11系列6” 如果有人在文本框中键入该字符串的一部分,例如“iris”,我如何识别原始字符串中的子字符串 我有以下内容,但它仅在字符串以文本框中的值开头时匹配 var txt= $('#txtName').val(); var regExp = new RegExp("^" + txt, "i"); var t = item.name.replace(regExp, "<span class='matched-text'>" + tx

如果我有一个字符串,例如:“共识虹膜2010-11系列6”

如果有人在文本框中键入该字符串的一部分,例如“iris”,我如何识别原始字符串中的子字符串

我有以下内容,但它仅在字符串以文本框中的值开头时匹配

var txt= $('#txtName').val();

var regExp = new RegExp("^" + txt, "i");

var t = item.name.replace(regExp, "<span class='matched-text'>" + txt + "</span>");
var txt=$('#txtName').val();
var regExp=new regExp(“^”+txt,“i”);
var t=item.name.replace(regExp,“+txt+”);
旁注:我对正则表达式感到困惑

试试这个:

var regExp = new RegExp(txt, "i");
或者这个:

var regExp = new RegExp("\b"+txt"\b", "i");

第一个将匹配<代码> txt<代码>在字符串中的任何地方,甚至在单词的中间。第二个词在一个词的中间不匹配。

var regExp = new RegExp(txt, "i");
或者这个:

var regExp = new RegExp("\b"+txt"\b", "i");

第一个将匹配<代码> txt<代码>在字符串中的任何地方,甚至在单词的中间。第二个词在一个词的中间不匹配。

< p>因为正则表达式从^ < /Cord>开始,它只匹配从<>代码> txt的值开始的序列。删除
^
即可设置。

因为正则表达式以
^
开头,它将只匹配以
txt
的值开头的序列。删除
^
即可设置。

您的问题是,在正则表达式前面加上
“^”
,使其仅在字符串/文本框的开头匹配。删除它,它应该像正常子字符串预期的那样工作


但是,如果有人在搜索框中键入正则表达式,您的代码可能会产生意外的效果。例如,如果有人键入
\w
,每个字母和数字都会突出显示。有助于了解更多有关正则表达式的信息。

您的问题在于,在正则表达式前面加上“^”使其仅在字符串/文本框的开头匹配。删除它,它应该像正常子字符串预期的那样工作


但是,如果有人在搜索框中键入正则表达式,您的代码可能会产生意外的效果。例如,如果有人键入
\w
,每个字母和数字都会突出显示。用于学习有关正则表达式的更多信息。

正则表达式的好资源:正则表达式的好资源:+1用于说明必须转义特殊字符。+1用于说明必须转义特殊字符。