我有一个 html 字符串,我想用双引号替换用单引号设置的 html 属性的任何实例。
例如,我想替换
<script src='foo.js'></script>
与
<script src="foo.js"></script>
但是,我希望在不影响 javascript 语句或 html 文本中可能存在的任何单引号的情况下执行此操作。
例如
<script> var foo = '67'; </script>
应该不受影响并且
<div id='foo'> 'hi' </div>
应该变成
<div id="foo"> 'hi' </div>
有什么简单的方法可以做到这一点吗?
对于给定的元素,使用jquery选择它,然后读取它的outerHTML可以做到这一点,但我想一次性对整个html页面执行此操作。
谢谢!
最佳答案
试试这个:
var str = "<br style = 'width:100px'/> test link<a href=\"http://www\"></a>";
var regex = /<\w+\s*(\w+\s*=\s*(['][^']*['])|(["][^"]*["]))*\s*[\/]?>/g;
var rstr = str.replace(regex, function($0,$1,$2){
return $0.replace($2, $2.replace(/'/g, '"'));
});
console.log('replaced string = ' + rstr);
您可以重新调整它以严格匹配您的情况。
关于javascript - 将所有使用单引号的 html 属性定义替换为双引号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13372908/