test-replace polish chars

Benchmark created on


Setup

polishCharMap = new Map([
  ['ś', 's'], ['ź', 'z'], ['ż', 'z'], ['ć', 'c'],
  ['ą', 'a'], ['ę', 'e'], ['ó', 'o'], ['ł', 'l'], ['ń', 'n'],
  ['Ś', 'S'], ['Ź', 'Z'], ['Ż', 'Z'], ['Ć', 'C'],
  ['Ą', 'A'], ['Ę', 'E'], ['Ó', 'O'], ['Ł', 'L'], ['Ń', 'N'],
])


polishCharsRegex = new RegExp(`[${Array.from(polishCharMap.keys()).join('')}]`,
  'g')


polishCharObj  = {
  'ś': 's', 'ź': 'z', 'ż': 'z', 'ć': 'c',
  'ą': 'a', 'ę': 'e', 'ó': 'o', 'ł': 'l', 'ń': 'n',
  'Ś': 'S', 'Ź': 'Z', 'Ż': 'Z', 'Ć': 'C',
  'Ą': 'A', 'Ę': 'E', 'Ó': 'O', 'Ł': 'L', 'Ń': 'N',
}

polishCharsArr= [
  [ `ś`, `s` ],
  [ `ź`, `z` ],
  [ `ż`, `z` ],
  [ `ć`, `c` ],
  [ `ą`, `a` ],
  [ `ę`, `e` ],
  [ `ó`, `o` ],
  [ `ł`, `l` ],
  [ `ń`, `n` ],
  // ------------
  [ `Ś`, `S` ],
  [ `Ź`, `Z` ],
  [ `Ż`, `Z` ],
  [ `Ć`, `C` ],
  [ `Ą`, `A` ],
  [ `Ę`, `E` ],
  [ `Ó`, `O` ],
  [ `Ł`, `L` ],
  [ `Ń`, `N` ],
]

replacePolishCharactersT2 = (text) => {
  return text.replace(polishCharsRegex, match => polishCharObj[match])
}

replacePolishCharactersT4 = (text) => {
  return text.replace(polishCharsRegex, match => polishCharMap.get(match) || match)
}

Test runner

Ready to run.

Testing in
TestOps/sec
on split
replacePolishCharacters = (text) => {
  return text
    .split('')
    .map(char => polishCharObj[char] ?? char)
    .join('')
}

replacePolishCharacters('Zażółć gęślą jaźń. Ślimak wędrował przez łąkę, ćwicząc swoje nóżki. Później łowił ryby na rzece Łyną, gdzie spotkał Ędwarda i Ądrzeja.')
ready
old style

replacePolishCharacters = (textToClean) => {
  v = textToClean

  polishCharsArr.forEach( ([ bannedChar, newChar ]) => {
    v = v.replaceAll( bannedChar, newChar )
  } )
  return v
}

replacePolishCharacters('Zażółć gęślą jaźń. Ślimak wędrował przez łąkę, ćwicząc swoje nóżki. Później łowił ryby na rzece Łyną, gdzie spotkał Ędwarda i Ądrzeja.')

ready
on regex

replacePolishCharactersT2('Zażółć gęślą jaźń. Ślimak wędrował przez łąkę, ćwicząc swoje nóżki. Później łowił ryby na rzece Łyną, gdzie spotkał Ędwarda i Ądrzeja.')
ready
upgrade v2

replacePolishCharactersT4('Zażółć gęślą jaźń. Ślimak wędrował przez łąkę, ćwicząc swoje nóżki. Później łowił ryby na rzece Łyną, gdzie spotkał Ędwarda i Ądrzeja.')
ready

Revisions

You can edit these tests or add more tests to this page by appending /edit to the URL.