在变量中,字符串数据来自文本输入,如下所示。
var noteStr="<?php echo $_REQUEST["noteStr"];?>";
如果用户在文本输入中给出任何双引号,则javascript会按预期给出错误。我没有找到在这种情况下使用javascript str.replace()的方法,因为在使用字符串变量之前,javascript引擎会生成错误。
如何使用javascript解决此问题? 谢谢你的帮助。
答案 0 :(得分:1)
使用PHP函数htmlspecialchars()。
var noteStr="<?php echo htmlspecialchars($_REQUEST["noteStr"]); ?>";
这里是等效的JavaScript:
function escapeHtml(text) {
var map = {
'&': '&',
'<': '<',
'>': '>',
'"': '"',
"'": '''
};
return text.replace(/[&<>"']/g, function(m) { return map[m]; });
}
答案 1 :(得分:0)
Javascript中有一个很棒的inbuild函数。逃避()功能。
<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中使用Prototype来实现。一个简单的例子 -
var str = '<div class="article">This is an article</div>';
document.write( str.escapeHTML() );
将成为 -
<div class="article">This is an article</div>
来源:http://www.tutorialspoint.com/cgi-bin/practice.cgi?file=prototype_83
希望它有所帮助! :)