2012-01-17 170 views

回答

0

试试这个,而不是

return str.replace(/(\r\n|\n|\r)*$/, breakTag) 

(我用的$字符串的结尾匹配)

+1

没有必要逃避使用正则表达式文本时,“\”字符;事实上,如果模式拟匹配的是回车换行对,则显然是错误的。你也把第二个参数放在'.replace()'中。 – Pointy 2012-01-17 17:39:26

+0

为真。这一切都是因为我害怕逃跑......我编辑过,谢谢 – fcalderan 2012-01-17 17:44:00

1

你的模式的第一部分匹配任何单个字符这>或回车或换行,但不会将其添加回结果字符串。因此它总是吃掉换行前的最后一个字符。

尝试:

return (str + '').replace(/([^>\r\n]?)(\r\n|\n\r|\r|\n)/g, "$1" + breakTag); 
+0

+1似乎这是最好的解决方案 – Christopher 2012-01-17 17:56:13

+0

谢谢你! :-) – ebsp 2012-01-17 21:25:31

相关问题