我需要在javascript中转义双引号

时间:2014-05-29 03:45:35

标签: javascript jquery regex

在下面的示例中,我运行str through .replace并使用输出填充id为wtf的div。问题是我必须手动转义str.replace的双引号才能工作。 有没有办法自动转义双引号?

<body>
    <div id="wtf"></div>
<script>
var str = ("this string has "double quotes" as well as 'single quotes'..");

var well = str.replace(/\s\d{2}\s(\d{2}\s)?/g,' ');

wtf.innerHTML = well;
</script>
</body>

3 个答案:

答案 0 :(得分:2)

您必须手动转义双引号。没有办法自动完成,因为str会产生以下错误,然后javascript就不会在代码行之前执行:

enter image description here

答案 1 :(得分:1)

使用反斜杠( \ )来转义双引号。

它应该是这样的:

var str = ("this string has \"double quotes\" as well as 'single quotes'..");

没有自动的方法来做到这一点。

答案 2 :(得分:0)

如果要替换引号,最好用HTML实体替换它们。使用这样的方法,你可以完成它。

var tokens = [
        ['"', '&quot;'],
        ["'", '&#039;']
];
var clean = [];

for(var i = 0; i < MY_STRING.length; i++) {     
  var s = MY_STRING[i];
  for(var a = 0; a < tokens.length; a++)
    if(tokens[a][0] == s) {
      s = tokens[a][1];
      break;
    }
    clean.push(s);                      
}
var cleanString = clean.join("");