當我使用此函數時,它將刪除字符串中的最後一個字母。它只能用
標籤替換換行符。哪裏不對?刪除字符串中最後一個字母的正則表達式
return (str + '').replace(/([^>\r\n]?)(\r\n|\n\r|\r|\n)/g, breakTag);
當我使用此函數時,它將刪除字符串中的最後一個字母。它只能用
標籤替換換行符。哪裏不對?刪除字符串中最後一個字母的正則表達式
return (str + '').replace(/([^>\r\n]?)(\r\n|\n\r|\r|\n)/g, breakTag);
試試這個,而不是
return str.replace(/(\r\n|\n|\r)*$/, breakTag)
(我用的$
字符串的結尾匹配)
你的模式的第一部分匹配任何單個字符這不>
或回車或換行,但不會將其添加回結果字符串。因此它總是吃掉換行前的最後一個字符。
嘗試:
return (str + '').replace(/([^>\r\n]?)(\r\n|\n\r|\r|\n)/g, "$1" + breakTag);
+1似乎這是最好的解決方案 – Christopher 2012-01-17 17:56:13
謝謝你! :-) – ebsp 2012-01-17 21:25:31
沒有必要逃避使用正則表達式文本時,「\」字符;事實上,如果模式擬匹配的是回車換行對,則顯然是錯誤的。你也把第二個參數放在'.replace()'中。 – Pointy 2012-01-17 17:39:26
爲真。這一切都是因爲我害怕逃跑......我編輯過,謝謝 – fcalderan 2012-01-17 17:44:00