繁体   English   中英

如何从javascript输入的文本中转义双引号?

[英]How can I escape double quotes from a text input in javascript?

在变量中,字符串数据来自文本输入,如下所示。

var noteStr="<?php echo $_REQUEST["noteStr"];?>";

如果用户在文本输入中给了任何双引号,那么javascript会给出预期的错误。 我没有找到在这种情况下使用javascript str.replace()的方法,因为在对字符串变量javascript引擎使用它之前会生成错误。

如何使用JavaScript解决此问题? 预先感谢您的帮助。

使用PHP函数htmlspecialchars()

var noteStr="<?php echo htmlspecialchars($_REQUEST["noteStr"]); ?>";

这是等效的JavaScript:

function escapeHtml(text) {
  var map = {
    '&': '&amp;',
    '<': '&lt;',
    '>': '&gt;',
    '"': '&quot;',
    "'": '&#039;'
  };

  return text.replace(/[&<>"']/g, function(m) { return map[m]; });
}

资料来源: HtmlSpecialChars是否等同于Javascript?

Javascript中有一个很棒的内置函数。 escape()函数。

<script>

document.write(escape("Hello friends? Here is the solution!"));

</script>

会变成-

Hello%20friends%3F%20Here%20is%20the%20solution%21 

退房-http ://www.w3schools.com/jsref/tryit.asp? filename = tryjsref_escape以供参考

这也可以通过在Javascript中使用原型来实现。 一个简单的例子-

var str = '<div class="article">This is an article</div>';
document.write( str.escapeHTML() );

会变成-

 &lt;div class="article"&gt;This is an article&lt;/div&gt; 

来源: http : //www.tutorialspoint.com/cgi-bin/practice.cgi? file= prototype_83

希望能帮助到你! :)

暂无
暂无

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

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