1

我正在尝试使用 javascript 用空格替换下面的字符串

    function replaceString()
    {
        var str = "ABC**EFG";
        return str.replace(/\*/g, " ");
    }

我收到了结果,ABC EFG但我希望结果带有两个空格。我也使用 php str.replace 尝试了同样的事情,但仍然得到相同的结果。

有没有其他方法可以用空格替换单个星号?

P/S:返回字符串将用作sql查询的一部分


[更新]

我最终返回了没有任何替换的字符串到 sql,然后我使用 sqlreplace函数在查询中执行替换。

4

4 回答 4

3

如果您在 HTML 元素中显示结果字符串,则两个或多个空格将仅显示为一个空格。要解决此事实,请 改用:

return str.replace(/\*/g, ' ');
于 2013-06-04T14:44:54.653 回答
0

伙计,问题出在 HTML 编译器上,它有自己特殊的解析规则,因此它将多个空格解析为一个。这仅适用于 HTML。这就是为什么使用 GIFT 标签

.

<pre> <p id="para"></p> </pre> <script> function replaceString() { var str = "ABC**EFG"; return str.replace(/\*/g," "); } document.getElementById("para").innerHTML=replaceString(); </script> <script> function replaceString() { var str1=String.fromCharCode(32,32); var str = "ABC**EFG"; return str.replace(/\*/g,str1); } alert(replaceString()); </script>

上面代码的函数返回可以直接在mysql中使用...

于 2013-06-04T16:06:49.277 回答
0

终于找到了最好的解决方案,我使用替换那些特殊字符percent-encoding (URL-encoding)

对于我的情况:str.replace(/\*/g, "%20");

于 2013-06-07T14:12:24.580 回答
0

尝试这个

return str.replace(/\*/g, '&#160;');
于 2013-06-04T14:54:26.047 回答