UNPKG

locutus

Version:

Locutus other languages' standard libraries to JavaScript for fun and educational purposes

32 lines (31 loc) 1.23 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.strrpos = strrpos; function strrpos(haystack, needle, offset) { // discuss at: https://locutus.io/php/strrpos/ // parity verified: PHP 8.3 // original by: Kevin van Zonneveld (https://kvz.io) // bugfixed by: Onno Marsman (https://twitter.com/onnomarsman) // bugfixed by: Brett Zamir (https://brett-zamir.me) // input by: saulius // example 1: strrpos('Kevin van Zonneveld', 'e') // returns 1: 16 // example 2: strrpos('somepage.com', '.', false) // returns 2: 8 // example 3: strrpos('baa', 'a', 3) // returns 3: false // example 4: strrpos('baa', 'a', 2) // returns 4: 2 let i = -1; if (typeof offset === 'number') { i = (haystack + '').slice(offset).lastIndexOf(needle); // strrpos' offset indicates starting point of range till end, // while lastIndexOf's optional 2nd argument indicates ending point of range from the beginning if (i !== -1) { i += offset; } } else { i = (haystack + '').lastIndexOf(needle); } return i >= 0 ? i : false; }