繁体   English   中英

在 JavaScript 字符串中转义单引号和双引号

[英]Escaping single and double quotes in JavaScript string

我的字符串${field.value}有值

'<table id="tblUserList">            
        <tbody>                 
        <tr>
        <td style="padding: 10px;">some test' and "xyz"</td>
        </tr>
        </tbody
        </table>'

我试过的是

escapestring = '${field.value}'

escapestring.replace("'", "\'");

document.getElementById("tblUserList").innerHTML  = escapestring ;

错误,它不起作用

Uncaught SyntaxError: Invalid regular expression flags

我想在some test' and "xyz"转义单引号和双引号some test' and "xyz"

我试图使string safe for inserting into HTML table.

更新:值来自服务器,我不能跳过字符串中的 HTML 元素

JSFIDDLE: https ://jsfiddle.net/e3jehrc5/1/

任何帮助表示赞赏。

在这里阅读字里行间……

 escapestring = '${field.value}'

我猜一些服务器端模板语言在这里填写了${field.value}的值。 第一:你不应该动态地动态生成 Javascript,通过 AJAX 或类似的方式获取这个 HTML 片段会是一个更好的主意。

话虽如此,由于您的服务器在这里动态生成 Javascript 源代码,因此需要注意生成语法上有效的代码 现在,您天真地将一个字符串粘贴到另一个字符串中,而不考虑您正在生成的内容的语法要求。 您无法在 Javascript 中修复此问题,因为 Javascript 本身已经无效。 您的模板语言需要将字符串正确编码为有效的 Javascript。 如何做到这一点完全取决于您的模板系统; 这是一个 PHP 示例:

var html = <?= json_encode($field->value); ?>;

此处的 JSON 编码会生成有效的 Javascript 文字,这就是您在此处寻找的全部内容。

另请参阅The Great Escapism(或:使用文本中的文本需要了解的内容)

用这个

var escapestring ='<table id="tblUserList"><tbody><tr><td style="padding: 10px;">some test'+"'"+' and "xyz"</td></tr></tbody></table>';

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM