簡體   English   中英

如何使用PHP或JS刪除換行符

[英]How to remove line breaks with PHP or JS

我已經嘗試了所有操作,以刪除正在使用的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_replace('\\n', '', $result)

這不是嗎? str_replace("\\n", '', $result)

看起來一樣吧? 看來,當您用雙引號"\\n"將字符值類似\\n的字符串括起來時,它被視為字符值而不是字符串。 另一方面,如果將其括在單引號'\\n'則它實際上被視為字符串\\n 至少這是我在3個小時的頭痛中得出的結論。

如果我得出的結論是特定於安裝程序的問題或錯誤,請告訴我或進行編輯。

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

我猜問題是您的代碼中也有\\r (回車,也顯示為換行符)。

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

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

奇怪的是,使用

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的字符串。 因此,這在Google Maps上引發了錯誤。

我需要做的是:

$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。

您嘗試過的兩個PHP函數都返回更改后的字符串,它們不會更改其參數:

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

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM