Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 将所有使用单引号的html属性定义替换为双引号_Javascript_Jquery_Dom - Fatal编程技术网

Javascript 将所有使用单引号的html属性定义替换为双引号

Javascript 将所有使用单引号的html属性定义替换为双引号,javascript,jquery,dom,Javascript,Jquery,Dom,我有一个html字符串,我想用单引号和双引号替换设置的html属性的任何实例 例如,我想替换 <script src='foo.js'></script> 与 但是,我希望这样做不会影响javascript语句或html文本中的任何单引号 乙二醇 var foo='67'; 应该不受影响,并且 <div id='foo'> 'hi' </div> “你好” 应该成为 <div id="foo"> 'hi' </di

我有一个html字符串,我想用单引号和双引号替换设置的html属性的任何实例

例如,我想替换

<script src='foo.js'></script>


但是,我希望这样做不会影响javascript语句或html文本中的任何单引号

乙二醇

var foo='67';
应该不受影响,并且

<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);
var str=“
测试链接”;
var regex=/回答了我自己的问题,因为我认为最简单的解决方案是这把小提琴中显示的内容,不需要jquery或regexp:

​
var htmlString=
'' +
'' +
'' +
'' +
'' ;
document.getElementById('foo')。innerHTML=htmlString;
log(document.getElementById('foo').outerHTML);

基本上,您只需要将html元素的内部html设置为不带html标记的html字符串,然后将html元素输出到外部html


我认为这比使用regexp要简单一些,尽管这是一个很棒的regexp Mike:)

它需要非常规则的表达式,而且,你最好希望你的HTML格式正确。outerHTML?那么你是在浏览器中操纵HTML?你想达到什么目的?我很好奇:你为什么要这样做?“我想一次对整个html页面执行此操作”-您的意思是要对已加载到浏览器中的页面的html执行此操作吗?那么,当两个引号都有效时,将单引号更改为双引号有什么意义?也许,如果您展示Ajax成功处理程序的JavaScript代码,它将为人们提供一些可以使用的东西。
<div id="foo"> 'hi' </div>
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);
<html id="foo"></html>​
var htmlString = 
  '<head>' +
  '<script type="text/javascript" src=\'main.js\'></scr' + 'ipt>' +
  '</head>' +
  '<body onload=\'onLoad()\'>' +
  '</body>' ;

document.getElementById('foo').innerHTML = htmlString;
console.log(document.getElementById('foo').outerHTML);