如果部分字符串匹配,在字符串中插入css标签



如果里面的字符串部分匹配某些条件,我试图替换字体颜色。

的例子:

var font_str = "<FONT color='red'>aaa-1/2</br>bbb-1/3</br>aaa-1/20</FONT>"
var match = 'aaa'

如果-x/x之后的单词与匹配字符串相同,我想用黑色字体标记

替换</br>

之前的整个单词我试图使用.replace()RegExp(),但仍然不知道如何实现我想要的。

font_str.replace(new RegExp(match, "g"), "<FONT face='monospace' color='black'>" + match + "</FONT>")

结果:

var font_str = '<FONT color='red'><FONT color='black'>aaa</FONT>-1/2</br>bbb-1/3</br><FONT color='black'>aaa</FONT>-1/20</FONT>'

输出应该是:

var font_str = "<FONT color='red'><FONT color='black'>aaa-1/2</FONT></br>bbb-1/3</br><FONT color='black'>aaa-1/20</FONT></FONT>"

可以使用

font_str.replace(
new RegExp(match.replace(/[-\^$*+?.()|[]{}]/g, '\$&') + "(?=[^<]*</?br\s*/?>)", "g"), 
"<FONT face='monospace' color='black'>$&</FONT>"
)

参见regex演示。

细节:

  • 查看JavaScript中是否有RegExp.escape函数?,这将转义match
  • 查看正则表达式演示。(?=[^<]*</?brs*/?>)是正向正向的,除了<+<+一个可选的/+br+零或多个空格+一个可选的/+>之外,它需要零或多个字符。

替换中的$&是匹配的match值(当您运行不区分大小写的regex搜索时特别有用)。

相关内容

  • 没有找到相关文章

最新更新