Javascript正则表达式替换精确字符

问题描述

| 我有这个代码
htmlString= htmlString.replace( new RegExp( \"WW(.+?)WW\",\"gim\" ),\"<span style=\'color:red;border-bottom:1px dashed red;\'>$1</span>\" );
这似乎可行,但是它正在替换网址中的www \。我所拥有的是WW somestring WW,我在WW之间剪切了文本并替换了它。但是,我似乎无法仅获取确切的char序列。我尝试了{WW} ^ WW [^ WW]和结尾[$ WW]及其变化形式。还尝试了\\ bWW字符串\\ bWW,但没有匹配项。 任何帮助将是巨大的,谢谢。     

解决方法

假设在开始的
WW
之后和结束的
WW
(例如,空白)之前除了字母数字字符之外还有其他内容,那么您可以这样做:
htmlString = htmlString.replace(/\\bWW\\b\\s*(.+?)\\s*\\bWW\\b/g,\"<span style=\'color:red;border-bottom:1px dashed red;\'>$1</span>\" );
使用正则表达式对象而不是字符串文字可使其更易于阅读。如果在字符串文字中使用了“ 4”,则表示\“ backspace \”-您需要在字符串文字中转义反斜杠,因此上述正则表达式将变为“ 5”。     ,如果您要替换的文本始终是大写字母,而您不想替换的www始终是小写字母,那么您可以将
\"gim\"
替换为
\"gm\"
:the8ѭ表示忽略大小写。
\"gim\"
中的
m
在RegExp中没有意义,因此您可以简化为
\"g\"
。