簡體   English   中英

JavaScript正則表達式替換換行符

[英]Javascript regexp replace newline

我有

return value.replace("\n","<br>")
            .replace("\r","<br>")
            .replace("<br><br>","<br>");

僅用\\ n替換了\\ n的第一個匹配項

我發現,要替換所有出現的情況,我應該將String替換為/String/g

所以我做了:

return value.replace("/\n/g","<br>")
            .replace("/\r/g","<br>")
            .replace("/<br><br>/g","<br>");

但是似乎我缺少了一些東西,因為什么也沒有取代。

刪除正則表達式周圍的雙引號:

return value.replace(/\n/g,"<br>")
        .replace(/\r/g,"<br>")
        .replace(/<br><br>/g,"<br>");

您應該刪除引號。 順便說一下,您可以使用這個簡單的正則表達式。

用這個:

return value.replace(/\n|\r|<br><br>/g,"<br>");

使用文字字符串時,請勿使用引號。 這意味着您的代碼變為:

return value.replace(/\n/g,"<br>")
            .replace(/\r/g,"<br>")
            .replace(/<br><br>/g,"<br>");

但是使用正則表達式,您實際上可以通過使用字符類來使其更短。 例如,如果value最初沒有任何<br> ,則可以使用以下命令:

return value.replace(/[\r\n]+/g, "<br>");

但是,如果您的初始代碼從一開始就有<br> ,那么您可以使用更多類似這樣的內容:

return value.replace(/(?:[\r\n]|<br>)+/g, "<br>");

或者,如果您想保留連續的換行符,則可以使用定界符:

return value.replace(/[\r\n]{2}/g, "<br>");

要么

return value.replace(/(?:[\r\n]|<br>){2}/g, "<br>");

暫無
暫無

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

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