逃避撇号不起作用

时间:2015-03-25 21:56:13

标签: javascript php replace

我发现了一些像这样的问题,但不幸的是,没有一个解决方案解决了我的问题。

以下是我正在做的事情(也尝试使用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");

在文本字段上为heAs good提供he's good

为什么会发生这种情况?如何摆脱这种情况?

1 个答案:

答案 0 :(得分:0)

运行快速测试,对我有用的是将替换值更改为html实体。例如:

var val1=va1.replace(/'/g,"&#39;");

字符串(在设置值之前)将显示html实体,但输入的值将是已解码的实体。