如何使用PHP或JS删除换行符

如何使用PHP或JS删除换行符,php,javascript,Php,Javascript,我已经尝试过在我正在使用的web应用程序中删除一些额外的\n字符。我希望有人以前遇到过这个问题,并且知道是什么导致了这个问题。我所有的JS和PHP文件都是UTF-8编码的,没有BOM表 是的,我试过这样的方法 在JS中: text.replace(/\n/g,"") 在PHP中: preg_replace("[\n]","",$result); str_replace("\n","",$result); 当我尝试的时候 text.replace(/\n/g,"") 在firebug控制台

我已经尝试过在我正在使用的web应用程序中删除一些额外的
\n
字符。我希望有人以前遇到过这个问题,并且知道是什么导致了这个问题。我所有的JS和PHP文件都是UTF-8编码的,没有BOM表

是的,我试过这样的方法

在JS中:

text.replace(/\n/g,"")
在PHP中:

preg_replace("[\n]","",$result);
str_replace("\n","",$result);
当我尝试的时候

 text.replace(/\n/g,"")
在firebug控制台中,使用我从服务器获得的相同字符串,它可以工作,但由于某些原因,它不能在JS文件中工作

我很绝望,很挑剔,这简直要了我的命。欢迎您的任何意见

编辑:

如果有帮助,我知道如何使用上面的替换函数。由于某种原因,我可以替换除
\n
之外的任何其他字符串或模式

回答说明:

有些人做和使用有用的东西,因为它就是有用的。如果你和我一样,我总是想知道为什么什么是有效的

就我而言:

为什么会这样<代码>str_替换('\n','$result)

这不是吗<代码>str\u replace(“\n”,”$result)

看起来一模一样,对吧? 当你用一个字符值括起一个字符串时,比如用双引号括起
\n
“\n”
,它被看作是字符值,而不是字符串。另一方面,如果将它括在单引号中,
'\n'
它实际上被视为字符串
\n
。至少这是我在3小时头痛中得出的结论


如果我得出的结论是特定于设置的问题或错误,请务必让我知道或编辑

在javascript中,
.replace()
方法不会修改字符串。它返回一个新的修改字符串,因此您需要引用结果

text = text.replace(/\n/g,"")

您尝试的两个PHP函数都返回经过修改的字符串,但它们不会修改其参数:

$result = preg_replace("[\n]","",$result);

$result = str_replace("\n","",$result);

在php中,使用str_replace(数组('\r','\n'),'$string)

我想问题是您的代码中也有
\r
(回车,也显示为换行)。

奇怪的是,使用

str_replace(array('\r','\n'), '', $string)
不适合我。我也不知道为什么

在我的情况下,我需要从一个WordPress自定义元字段中获取输出,然后我将其格式设置为HTML,放在javascript数组中,以便以后在我的站点上的Google Maps实例中用作信息窗口

如果我做了以下事情:

$stockist_address = $stockist_post_custom['stockist_address'][0];
$stockist_address = apply_filters( 'the_content', $stockist_address);
$stockist_sites_html .= str_replace(array('\r','\n'), '', $stockist_address);
这并没有给我一个字符串和html在一行。因此,这在谷歌地图上引发了一个错误

我需要做的是:

$stockist_address = $stockist_post_custom['stockist_address'][0];
$stockist_address = apply_filters( 'the_content', $stockist_address);
$stockist_sites_html .= trim( preg_replace( '/\s+/', ' ', $stockist_address ) );
这对我很有吸引力


我相信在正则表达式选项卡、换行符和回车符中使用\s

您是否实际存储text.replace()的结果?它不会替换现有变量的内容,而是生成一个新变量。“[请阅读]”?我认为这行不通。您是否尝试过修改模式(即模式字符串被视为UTF-8)?换行符也可能是
\r\n
。如果只删除一半,浏览器可能仍会对其进行解释。甚至可以尝试
[\r\n\v]
@mario我得出的结论是,至少在JS
[\r\n\v]
中,“\n”在浏览器中显示,字符串也是一个字符串,
[\r\n\v]
查找字符值。谢谢,但情况并非如此。如果有帮助,我知道如何使用replace函数。我可以替换任何其他模式或字符串,但“\n”谢谢,但这不是案例:$result=preg_replace(“#\n | \r\n |”,”$result);阅读
答案解释
编辑并查看为什么此解决方案有效,而其他解决方案无效,尽管它们看起来应该如此:)