javascript - 从字符串中删除特殊字符(HTML 标记内的特殊字符除外)

标签 javascript regex

我有一个带有 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/

相关文章:

javascript - 使用 D3.js 绘制方阵

javascript - 添加新的 React 组件 onclick

javascript - 如何在 Node 控制台中记录深度嵌套的对象

javascript - 在 javascript 中使用正则表达式时的不同行为

regex - 正则表达式大于和小于

javascript - 如何在两个 javascript 对象文字之间进行通信?

JavaScript 创建元素然后添加一个事件

Javascript Replace() 函数在 jQuery UI 对话框中不起作用

java - 从正则表达式输出中删除空字符串

php - 我应该使用 Regex 来解析我的文件,还是有更好的方法?