var PL_EN_LETTERS_MAPPING = { 'ą': 'a', 'ć': 'c', 'ę': 'e', 'ł': 'l', 'ń': 'n', 'ó': 'o', 'ś': 's', 'ź': 'z', 'ż': 'z', '„': '"', '”': '"' }; function replaceAt(value, index, replacement) { return value.substr(0, index) + replacement + value.substr(index + replacement.length); } function convertToStringIdentifier(value) { let identifier = value.toLowerCase(); for (let i = 0; i < identifier.length; i++) { const currentChar = identifier.charAt(i); const en_letter = PL_EN_LETTERS_MAPPING[currentChar]; if (en_letter) { identifier = replaceAt(identifier, i, en_letter); } } return identifier; }