我有这段代码
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 string \ bWW并且没有匹配。
任何帮助都会很棒,谢谢。
答案 0 :(得分:4)
假设在开始WW
之后和结束WW
(例如空格)之前还有除字母数字字符之外的其他字符,那么您可以这样做:
htmlString = htmlString.replace(/\bWW\b\s*(.+?)\s*\bWW\b/g,
"<span style='color:red;border-bottom:1px dashed red;'>$1</span>" );
使用正则表达式对象而不是字符串文字使其更容易阅读。如果您在字符串文字中使用了\b
,则意味着“退格” - 您需要在字符串文字中转义反斜杠,因此上述正则表达式将变为"\\bWW\\b\\s*(.+?)\\s*\\bWW\\b"
。
答案 1 :(得分:0)
如果您要替换的文本始终为大写且您不想替换的www始终为小写,那么您只需将"gim"
替换为"gm"
:{{ 1}}表示忽略大小写。 i
中的m
在RegExp中没有任何意义,因此您可以缩减为"gim"
。