我想用单引号替换HTML属性双引号。例如:
如果输入为:
<a onclick="Track("http://www.example.com")">Track Me</a>
输出将是:
<a onclick='Track("http://www.example.com")'>Track Me</a>
此处onclick="Track("http://www.example.com")"
需要替换为onclick='Track("http://www.example.com")'
,此处onclick="..."
的唯一更改将替换为onclick='...'
。
在我的情况下,内容是从HTML编辑器中检索的,其内容需要使用JavaScript在客户端进行清理。我目前唯一能想到的方法是我需要使用Regex
将 onclick 双引号属性替换为单引号属性,并且只有当
我尝试过类似:jsFiddle
的内容我正在寻找任何解决方案。任何帮助都非常感谢。
感谢。
答案 0 :(得分:1)
如果你无法改变他人,那就改变自己吧。 所以我们走了:
var str = '<a onclick="Track("http://www.example.com")">Track Me</a>';
console.log(str.replace(/onclick="Track\("([^"]+)"\)"/, 'onclick=\'Track("$1")\''));
答案 1 :(得分:0)
如果您仍在寻找正则表达式,可以使用此示例。它将为您提供链接<a onclick="Track('http://www.example.com')">Track Me</a>
var s = '<a href="#" target="_blank"
onclick="Track("http://www.example.com/")">Test Link</a>';
var p = s.replace(/(onclick=")(.*)(\")/,function(match,prefix,handler,suffix){
return prefix + handler.replace(/"/g,'\'') + suffix;
});
console.log(p);
fiddle用于演示;
我没有看到,您要查找版本<a onclick='Track("http://www.example.com")'>Track Me</a>
,因此您可以使用此行更改上述代码
var p = s.replace(/(onclick=")(.*)(\")/,function(match,prefix,handler,suffix){
return prefix.replace(/"/,'\'') + handler + suffix.replace(/"/,'\'');
});