UNPKG

locutus

Version:

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

21 lines (20 loc) 829 B
import { getPhpLocaleGroup } from "../_helpers/_phpRuntimeState.js"; import { setlocale } from "../strings/setlocale.js"; export function strcoll(str1, str2) { // discuss at: https://locutus.io/php/strcoll/ // parity verified: PHP 8.3 // original by: Brett Zamir (https://brett-zamir.me) // improved by: Brett Zamir (https://brett-zamir.me) // example 1: strcoll('a', 'b') // returns 1: -1 setlocale('LC_ALL', 0); // ensure setup of localization variables takes place const localeCollation = getPhpLocaleGroup('LC_COLLATE', 'LC_COLLATE'); if (!localeCollation) { return str1.localeCompare(str2); } const cmp = localeCollation.LC_COLLATE; if (typeof cmp !== 'function') { return str1.localeCompare(str2); } return cmp(str1, str2); }