转义撇号不起作用
Escape apostrophe is not working
我发现了一些类似的问题,但不幸的是,none 的解决方案解决了我的问题。
这是我正在做的(也尝试了 json_encode
。也没有用)
PHP
$head="<div id='headx'>".htmlspecialchars($headu)."<input type='submit' id='edit_head' value='Edit' onclick='edit_title9(this.id,\"".htmlspecialchars($headu,ENT_QUOTES)."\")'></div>
Javascript
function edit_title9(ya,va1){
var divid = document.getElementById(ya).parentNode.id;
var cola=ya;
var val1=va1.replace(/'/g,"\'");
alert(val1); //works fine
document.getElementById(divid).innerHTML="<input type='text' id='taxi1' width='40px' value='"+val1+"' >";
}
当我使用alert(val1)
时,它工作正常并在线上显示'
,但在text field
中,我只能达到apostrophe(exclusive)
,其余的是已删除。
但是当我使用其他字符时,它在 text field
中显示得很好。
va1.replace(/'/g,"\A");
在文本字段上 he's good
给出 heAs good
。
为什么会发生这种情况,我该如何摆脱它?
运行 一个快速测试,对我有用的是将您的替换值更改为 html 实体。例如:
var val1=va1.replace(/'/g,"'");
字符串(在设置值之前)将显示 html 实体,但输入的值将是解码后的实体。
我发现了一些类似的问题,但不幸的是,none 的解决方案解决了我的问题。
这是我正在做的(也尝试了 json_encode
。也没有用)
PHP
$head="<div id='headx'>".htmlspecialchars($headu)."<input type='submit' id='edit_head' value='Edit' onclick='edit_title9(this.id,\"".htmlspecialchars($headu,ENT_QUOTES)."\")'></div>
Javascript
function edit_title9(ya,va1){
var divid = document.getElementById(ya).parentNode.id;
var cola=ya;
var val1=va1.replace(/'/g,"\'");
alert(val1); //works fine
document.getElementById(divid).innerHTML="<input type='text' id='taxi1' width='40px' value='"+val1+"' >";
}
当我使用alert(val1)
时,它工作正常并在线上显示'
,但在text field
中,我只能达到apostrophe(exclusive)
,其余的是已删除。
但是当我使用其他字符时,它在 text field
中显示得很好。
va1.replace(/'/g,"\A");
在文本字段上 he's good
给出 heAs good
。
为什么会发生这种情况,我该如何摆脱它?
运行 一个快速测试,对我有用的是将您的替换值更改为 html 实体。例如:
var val1=va1.replace(/'/g,"'");
字符串(在设置值之前)将显示 html 实体,但输入的值将是解码后的实体。