Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/281.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cassandra/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 逃逸撇号不起作用_Javascript_Php_Replace - Fatal编程技术网

Javascript 逃逸撇号不起作用

Javascript 逃逸撇号不起作用,javascript,php,replace,Javascript,Php,Replace,我发现了一些像这样的问题,但不幸的是,没有一个解决方案解决了我的问题 下面是我正在做的事情(也尝试了json\u encode。也不起作用) PHP $head="<div id='headx'>".htmlspecialchars($headu)."<input type='submit' id='edit_head' value='Edit' onclick='edit_title9(this.id,\"".htmlspecialchars($headu,ENT_QUOTE

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

下面是我正在做的事情(也尝试了
json\u 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>
在文本字段中为
他很好
给出
他很好


为什么会发生这种情况?我怎样才能消除这种情况?

运行一个快速测试,对我有效的方法是将替换值更改为html实体。例:

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

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

更改
。替换
以替换为值
\\\'
。您可能需要双重转义替换值。或者更好的做法是,设置innerHTML,并在下一行
getElementById('theID')。value=val1
不带替换。或者简单地使用DOM调用。
\\\'
不起作用。给我'he\',其余的被删除。我需要这样做,这可能无法使用
getElementById('theID')。value=val1
。这是我对文本字段
document.getElementById(divid).innerHTML=“”
我的第二条注释的意思是,在您对
divid
执行innerHTML之后,输入元素现在位于文档中,您可以使用document.getElementById()找到它并设置它的值。这只是一种方式。您还可以替换为html实体,即
&apos
(或
&35; 39;
,相同的东西)类似于
。替换(/'/,'apos;')哪一个有效。做一个快速测试对我来说很有效。
va1.replace(/'/g,"\A");
var val1=va1.replace(/'/g,"&#39;");