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