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();