我正在尝试捕获制表符分隔列表的值:
1 11 11111111
2 22 2222
3 33 33333333
这很简单,只是最后一行可能有一个尾随\n
,当我遍历脚本其他区域的行时,会给我一些错误。如果它有这个尾随\n
,我想摆脱它。我能做到这一点:
var res = myStr.substr(-1);
if (/\n/.test(res)){
return myStr.substr(0, myStr.length - 1)
}
但是当然这将无法截断多个尾随\n
的字符串。我想我可以使用子串方法循环,直到最后一个字符不是\n
,但我想知道是否有更优雅的正则表达式方法。
/^\s*[\r\n]/gm.test(myStr)
由于某种原因,只有在字符串末尾有多个\n
时才返回true,并且当只有一个\n
时返回false。
我想使用jquery $.trim()
方法,但如果它只是制表符,它会截断最后一行。我不能这样做,因为我仍然想要记住那条线的存在,即使它是空的。
并不是说循环是一个完全不受支持的想法,但有没有办法用正则表达式解决这个问题?
答案 0 :(得分:2)
我认为你在寻找:
var result = yourString.replace(/\n+$/,"");
在正则表达式基础知识中,
+
是“前一个字符的一次或多次出现”的量词$
是“字符串的结束位置”锚。答案 1 :(得分:0)
如果您想摆脱它,请尝试
myTest = $.trim(myText)
注意:它也将删除空格
否则请尝试测试/\n+$/.test(myText)