什么是最有效的方式来获得最后一个换行符的string

我有以下函数来获取string中的最后一个换行符的位置:

function getLastLineBreak (content) { function reverse(s){ return s.split("").reverse().join("") } var reversed = reverse(content) var index = content.length-reversed.indexOf("\n") return index } var myString = "some text \n next linet \n another link \n 123" indexIs = getLastLineBreak(myString) console.log("index is", indexIs) console.log("text after", indexIs, myString.substr(indexIs,myString.length)) 

有没有一种方法使用正则expression式来拾取nodejs中string中的最后一个换行符位置?

你可以使用String.prototype.lastIndexOf

 var myString = "some text \n next linet \n another link \n 123"; document.write(myString.lastIndexOf('\n')); 

这也应该工作

 (.*$) 

我们可以利用这个事实. 不匹配新行。

Ideone演示

JS代码

 var re = /(.*$)/g; var str = 'some text \n next linet \n another link \n 123'; matches = re.exec(str); document.writeln(matches[1]) 

我会以老式的方式来做。 /(\r?\n)[^\r\n]*$/

这应该从string的末尾开始并向后工作。
最后一次换行在大多数情况下可能最接近。