我想编写一个匹配完整单词或短语的正则表达式模式,即使它们有 unicode 字符来用一些 html 代码包装它们。所以我使用这种模式:
var pattern=new RegExp('(^|\\s)'+phrase+'(?=\\s|$)', "gi");
它甚至可以完美地适用于一个问题的多词短语。如果短语不是字符串的开头,则它与单词前的空格匹配。所以在我包装它之后,我会失去那个空间。我只想包装短语变量而不是空格。
例如:
var string="This is a nice sentence.";
var phrase="is a nice";
/*OUTPUT: Thisis a nicesentence*//*HTML OUTPUT: This<span>is a nice</span>sentence*/
/*What I want: This <span>is a nice</span> sentence*/
当然,这种模式可以工作:
var pattern=new RegExp(phrase, "gi");
但我不是在寻找那些是另一个子字符串的字符串。
是否可以使用更好的正则表达式模式解决我的问题?