iegik
10/20/2011 - 7:17 PM

String normalization

Replace āēūīšģķļ to aeuisgkl

// shim for String.prototype.normalize https://github.com/walling/unorm
export default str => str.normalize('NFKD')
    .replace(/[\u0300-\u036f]/g, "") // remove accents
    .replace(/\u0142/g, "l"); // ł is a letter in itself

/*
const normalize = import('normalize.js')
console.log(normalize('ąśćńżółźćęāēūīšģķļ'))
*/
<?php
return function normalize($str) {
  $normalized = Normalizer::normalize($str, Normalizer::NFKD);
  $normalized = preg_replace('/[\u0300-\u036f]/g', '', $normalized);
  $normalized = preg_replace('/\u0142/g', 'l', $normalized);
  return $normalized;
} 

/*
normalize = include 'normalize.php'
echo normalize('ąśćńżółźćęāēūīšģķļ');
*/