获取字符串中最后一个换行符的最有效方法是什么

What is the most efficient way to get the last line break in a string

本文关键字:有效 方法 是什么 换行符 字符串 最后一个 获取      更新时间:2023-09-26

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

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))

有没有一种方法可以使用正则表达式来获取nodejs中字符串中的最后一个换行位置?

您可以使用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]*$/

这应该从字符串的末尾开始并向后进行
在大多数情况下,最后一个换行符可能最接近的地方。