[英]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.