我有一个带有 HTML 标记和特殊字符 (\,:) 的字符串。我已使用 .replace(/[\:]/g,'')
从字符串中删除特殊字符但问题是我的字符串包含具有 style 属性的 HTML 标签,因此我使用的正则表达式正在删除 :
来自 span 标签的 style 属性。
我不想删除:
来自span标签的样式属性
有人建议解决这个问题吗?
查找下面的 regex101 链接 https://regex101.com/r/UAOuDG/1
最佳答案
不要这样做,但如果你必须以任何方式这样做,有一个解决方法(不能 100% 保证)
var str = "By: <span style='background-color:#ffc8c4;'>Anita</span> <span style='background-color:#ffc8c4;'>Elberse</span> and : Sir Alex Ferguson";
console.log(str.replace(/<\w+(?=[ >])[^<>]*>|(:)/g, function(_o, O_) {
return O_ ? '' : _o;
}));
正则表达式解释:
<\w+(?=[ >]) # Begin matching opening tags
[^<>]*> # Up to end
| # Or (then)
(:) # Any remaining colons
关于javascript - 从字符串中删除特殊字符(HTML 标记内的特殊字符除外),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44824409/