繁体   English   中英

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

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM