PHP's strrchr in TypeScript

How to use

Install via yarn add locutus and import: import { strrchr } from 'locutus/php/strings/strrchr'.

Or with CommonJS: const { strrchr } = require('locutus/php/strings/strrchr')

Use a bundler that supports tree-shaking so you only ship the functions you actually use. Vite, webpack, Rollup, and Parcel all handle this. For server-side use this is less of a concern.

Examples

These examples are extracted from test cases that automatically verify our functions against their native counterparts.

#codeexpected result
1strrchr("Line 1\nLine 2\nLine 3", 10).substr(1)'Line 3'

Here's what our current TypeScript equivalent to PHP's strrchr looks like.

export function strrchr(haystack: string, needle: string): string | false {
// discuss at: https://locutus.io/php/strrchr/
// original by: Brett Zamir (https://brett-zamir.me)
// input by: Jason Wong (https://carrot.org/)
// bugfixed by: Brett Zamir (https://brett-zamir.me)
// example 1: strrchr("Line 1\nLine 2\nLine 3", 10).substr(1)
// returns 1: 'Line 3'

let pos = 0

if (typeof needle !== 'string') {
needle = String.fromCharCode(parseInt(needle, 10))
}
needle = needle.charAt(0)
pos = haystack.lastIndexOf(needle)
if (pos === -1) {
return false
}

return haystack.substr(pos)
}

Improve this function

Locutus is a community effort following The McDonald's Theory: we ship first iterations, hoping others will improve them. If you see something that could be better, we'd love your contribution.

View on GitHub · Edit on GitHub · View Raw


« More PHP strings functions


Star