使用下面的代码,我尝试使用正则表达式向字符串添加样式,而不是
“更新”设置为<'span style='color:blue' >test</span> text'
将其设置为'test text'。我滥用正则表达式吗?

src:

var text = 'test text';
var stringToStyle = 'test';
var update = "<span style='color:blue' >" + stringToStyle + "</span>";
var updated = text.replace('/'+stringToStyle+'/gi' , update);

console.log(update);
console.log(updated);


plunkr:
https://plnkr.co/edit/6uO3M8kATQLXvWWVx1Vw?p=preview

最佳答案

您正在将字符串而不是正则表达式传递给.replace。请注意,在stringToStyle具有正则表达式控制字符的情况下,这不是很安全。

var regexp = new RegExp(stringToStyle, 'gi');
var updated = text.replace(regexp, update);


或者您可以直接通过stringToStyle,这是安全的。

10-06 00:04