JSFiddle - React, Tailwind, and code Playground

JavaScript

String.prototype.lastIndexOf = function(pattern) {
    pattern = pattern + "(?![\s\S]*" + pattern + ")";
    var regex = new RegExp(pattern);
    var match = regex.exec(this);
    return (match == null) ? -1 : match.index;
}
   
function indexOfLastNewline(str) {
    var match = str.match(/\r?\n(?![\s\S]*(\r?\n))/);
    return (match == null) ? -1 : match.index;
}

var str = "Hello 1\nHello 2\nHello 3\nHello4";
alert(str.lastIndexOf("(\r?\n)")); // always returns the 1st newline (7)
alert(indexOfLastNewline(str)); // returns correctly (23)