Examples tested against actual runtime. CI re-verifies continuously. Only documented examples are tested.
How to use
Install via yarn add locutus and import:
import { substr_compare } from 'locutus/php/strings/substr_compare'.
Or with CommonJS: const { substr_compare } = require('locutus/php/strings/substr_compare')
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.
#
code
expected result
1
substr_compare("abcde", "bc", 1, 2)
0
Here's what our current TypeScript equivalent to PHP's substr_compare looks like.
mainStr = mainStr.substr(offset, length) // Should only compare up to the desired length str = str.substr(0, length) if (caseInsensitivity) { // Works as strcasecmp mainStr = (mainStr + '').toLowerCase() str = (str + '').toLowerCase() if (mainStr === str) { return0 } return mainStr > str ? 1 : -1 } // Works as strcmp return mainStr === str ? 0 : mainStr > str ? 1 : -1 }
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.