删除字符串中最后一个字母的正则表达式
问题描述:
当我使用此函数时,它将删除字符串中的最后一个字母。它只能用
标签替换换行符。哪里不对?删除字符串中最后一个字母的正则表达式
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);
+0
+1似乎这是最好的解决方案 – Christopher 2012-01-17 17:56:13
+0
谢谢你! :-) – ebsp 2012-01-17 21:25:31
没有必要逃避使用正则表达式文本时,“\”字符;事实上,如果模式拟匹配的是回车换行对,则显然是错误的。你也把第二个参数放在'.replace()'中。 – Pointy 2012-01-17 17:39:26
为真。这一切都是因为我害怕逃跑......我编辑过,谢谢 – fcalderan 2012-01-17 17:44:00