javascript - 将“使用 String.replace() 替换为正则表达式

标签 javascript regex

我有以下字符串

"content \" content <tag attr1=\"val1\" attr2=\"val2\">content \" content</tag> content \" content"

我想使用 String.replace() 函数将标签定义中的所有 " 字符替换为 ' 字符。"标签内容中的 字符必须保持其当前形式。

"content \" content <tag attr1='val1' attr2='val2'>content \" content</tag> content \" content"

也许可以使用带有某些分组的正则表达式?

最佳答案

您可以使用replace()和一个正则表达式回调来为您执行此操作:

var str = 'content " content <tag attr1="val1" attr2="val2">content " content</tag> content " content';

function replaceCallback(match) {
    return match.replace(/"/g, "'");
}

str = str.replace(/<([^>]*)>/g, replaceCallback);

正则表达式将匹配 < 之间的任何内容和>字符串中的字符并将匹配项传递给 replaceCallback()方法,然后根据需要替换 "'字符。

编辑:replaceCallback()正在使用 .replace('"', "'") ,但这只会替换第一个 " 。我已将其更新为使用正则表达式替换,现在它可以按预期工作。

关于javascript - 将“使用 String.replace() 替换为正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11887699/

相关文章:

javascript : Transform not working

regex - 否定前瞻

c# - 如何从字符串中提取前 3 个独立字符?

javascript - Typescript - 输入 React 组件时的 IntrinsicAttributes 和子类型问题

javascript - 如何查找具有特定数据属性值的元素

regex - 用于提取子字符串的 POSIX 正则表达式

regex - sed 正则表达式替换为引号

regex - 检查字段是否包含字符串列表中的值

javascript - 为什么我的分析事件没有被注册?

javascript - Chrome 中的 addEventListener