我有以下字符串
"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/