JSFiddle - React, Tailwind, and code Playground
by sneeps ninja
HTML
<input type="text" id="A" />
<input type="text" id="B" />
JavaScript
String.prototype.replaceAll = function(de, para){
var str = this;
var pos = str.indexOf(de);
while (pos > -1){
str = str.replace(de, para);
pos = str.indexOf(de);
}
return (str);
};
var teste ={};
teste.limpar=function(){
$('#A').keyup(function(){
var aux = new String( $(this).val() );
aux = aux.replaceAll(" ","-").toLowerCase();
aux = teste.replaceSpecialChars(aux);
$("#B").val(aux);
});
};
/**
* Array de objectos de qual caracter deve substituir seu par com acentos
*/
var specialChars = [
{val:"a",let:"áàãâä"},
{val:"e",let:"éèêë"},
{val:"i",let:"íìîï"},
{val:"o",let:"óòõôö"},
{val:"u",let:"úùûü"},
{val:"c",let:"ç"},
{val:"A",let:"ÁÀÃÂÄ"},
{val:"E",let:"ÉÈÊË"},
{val:"I",let:"ÍÌÎÏ"},
{val:"O",let:"ÓÒÕÔÖ"},
{val:"U",let:"ÚÙÛÜ"},
{val:"C",let:"Ç"},
{val:"",let:"?!()"}
];
/**
* Função para substituir caractesres especiais.
* @param {str} string
* @return String
*/
teste.replaceSpecialChars= function (str) {
var $spaceSymbol = '-';
var regex;
var returnString = str;
for (var i = 0; i < specialChars.length; i++) {
regex = new RegExp("["+specialChars[i].let+"]", "g");
returnString = returnString.replace(regex, specialChars[i].val);
regex = null;
}
return returnString.replace(/\s/g,$spaceSymbol);
};
teste.limpar();