jquery html()丢失空格

时间:2014-04-22 02:03:45

标签: php jquery preg-replace

我正在测试一个preg_replace函数,并且我从ajax函数返回已处理的数据(在我通过preg_replace处理数据之后,我将它通过htmlentities()):

我的测试字符串是:

pr     eg123 ~!@#$%^&*()-+={}|[]:;<            >?    "...,'/... 

我试图确保所有这些角色都没有被替换。我的替换功能是:

$string = preg_replace('/[^a-zA-Z0-9\s+\n\r,.\/~!@#\$%\^&*()\+={}\[\]|:;<>?\'"-]/', '', $string);

我返回来自&#34; echo&#34;的数据。并经过htmlentities()看到差异。 当我使用alert(数据)返回数据时,我得到:

pr     eg123 ~!@#$%^&*()-+={}|[]:;<            >?    "...,'/... 



pr     eg123 ~!@#$%^&amp;*()-+={}|[]:;&lt;            &gt;?    &quot;...,&#039;/...

分别。但是,当我将其中任何一个放入$("#div").html(data)时,我得到:

pr eg123 ~!@#$%^&*()-+={}|[]:;< >? "...,'/...

所以多个空格丢失了。为什么.html()函数会减少空格?我该如何解决这个问题?感谢

1 个答案:

答案 0 :(得分:0)

删除&#34; \ s +&#34;从正则表达式再试一次

&#34;我试图确保所有这些角色都没有被替换。&#34;你的意思是?

所以我做了如下测试:

    $string = "~!@#$%^&*()-+={}|[]:;<            >?";
// $string = preg_replace('/[^a-zA-Z0-9]/', '', $string);

echo "'", $string, "'";

输出

'~!@#$%^&*()-+={}|[]:;< >?'

如果你想在&#34;&lt;&#34;之间保持整个空白区域和&#34;&gt;&#34;在$ string中,我可以说没有办法,如果你想输出相同的空格,你可以输入:有两种方法可以做到这一点:

1&GT;使用&lt; pre&gt; tage
2 - ;使用&amp; nbsp;替换空格

你想要这些吗?如果你想保留所有?为什么要经常使用?