使用下面的代码,我尝试使用正则表达式向字符串添加样式,而不是
“更新”设置为<'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
,这是安全的。