删除字符串中最后一个字母的正则表达式

删除字符串中最后一个字母的正则表达式

问题描述:

当我使用此函数时,它将删除字符串中的最后一个字母。它只能用
标签替换换行符。哪里不对?删除字符串中最后一个字母的正则表达式

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

试试这个,而不是

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

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

尝试:

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