Регулярное выражение для автозамены символов Ăă, Ââ на Aa, Îî на Ii, Șș на Ss, Țț на Tt
Помогите пожалуйста разобраться, сайт работает на Opencart, использую модуль Simple, в нём есть возможность использовать регулярные выражения в текстовых полях, может эта инфа поможет, не нашёл ответа на форумах, вопрос оказался эксклюзивным
Ответы (1 шт):
Регулярные выражения в модуле "Simple" немного не для вашей задачи. Если прописать регулярное выражение оно лишь запретит ввод, но не будет заменять буквы. То есть пользователь будет вводить "Â" а в поле будет просто пустота. В вашем случае нужно использовать не большой js код.
Войдите в админке в модуль "Simple" перейдите в раздел "JAVASCRIPT" и используйте там следующий код:
function transliterate(word, template){
return word.split('').map(function (char) {
return template[char] || char;
}).join("");
}
$('[name="customer[firstname]"]').on("keyup paste", function() {
let th = $(this);
let val = th.val();
let template = {'Ă':'A', 'ă':'a', 'Â':'A', 'â':'a', 'Î':'I', 'î':'i', 'Ș':'S', 'ș':'s', 'Ț':'T', 'ț':'t'};
val = transliterate(val, template);
th.val(val);
});
Естественно не забудьте изменить имя "customer[firstname]" на имя того поля, в котором вы хотите выполнять замену. Его имя можно узнать, воспользовавшись chrome devtools, кликнув на input и скопировав значение атрибута "name"
Так же советую вам выполнять замену не только тех символов, что вы указали, добавьте полный список символов из итальянского, французского, чешского, польского языков, если это конечно необходимо, например хотя бы эти: 'Á', 'á','Č', 'č','Ď', 'ď','É', 'é','Ě', 'ě','Ň', 'ň','Ó', 'ó','Ř', 'ř','Š', 'š','Ť', 'ť','Ú', 'ú','Ů', 'ů','Ý', 'ý','Ž', 'ž', 'í', 'Í', 'É', 'é', 'Â', 'â', 'Ê', 'ê', 'Î', 'î', 'Ô', 'ô', 'Û', 'û', 'À', 'à', 'È', 'è', 'Ù', 'ù', 'Ë' , 'ë', 'Ï', 'ï', 'Ü', 'ü', 'Ÿ', 'ÿ', 'Ç', 'ç'