Substituindo palavras no JavaScript com replaceAll

Nesses dias tive uma necessidade de converter os acentos de uma página em html codes, para isso precisei usar um replaceAll que substitui uma palavra por outra em todo Texto, basta copiar o código abaixo entre tags 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);
}

Para usá-lo basta usar o método replaceAll para qualquer String no javascript

var result=document.getElementById('from').value;
result.replaceAll('Á','Á');

Para ver o resultado final clique aqui

código do resultado final

<html>
<head>
<style>
#conversor{
	font-family:tahoma;
	font-size:10pt;
}
#conversor textarea{
	width:100%;
	height:200px;
}
#conversor label{
	display: inline-block;
	width:120px;
}
#conversor input{
	
}
</style>
<script>
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);
}

function conversor(){
   //http://webdesign.about.com/library/bl_htmlcodes.htm
   var htmlCodes = {};
   
   if (document.getElementById('nAcentos').checked){
		htmlCodes = {
			'Á': {'code': '&Aacute;' },
			'á': {'code': '&aacute;'},
			'Â': {'code': '&Acirc;'},
			'â': {'code': '&acirc;'},
			'Ã': {'code': '&Atilde;'},
			'ã': {'code': '&atilde;'},
			'Ä': {'code': '&Auml;'},
			'ä': {'code': '&auml;'},
			'Å': {'code': '&Aring;'},
			'å': {'code': '&aring;'},
			'à': {'code': '&agrave;'},
			'À': {'code': '&Agrave;'},
			'Ç': {'code': '&Ccedil;'},
			'ç': {'code': '&ccedil;'},
			'È': {'code': '&Egrave;'},
			'è': {'code': '&egrave;'},
			'É': {'code': '&Eacute;'},
			'é': {'code': '&eacute;'},
			'Ê': {'code': '&Ecirc;'},
			'ê': {'code': '&ecirc;'},
			'Ë': {'code': '&Euml;'},
			'ë': {'code': '&euml;'},
			'Ì': {'code': '&Igrave;'},
			'ì': {'code': '&igrave;'},
			'Í': {'code': '&Iacute;'},		
			'í': {'code': '&iacute;'},
			'Î': {'code': '&Icirc;'},
			'î': {'code': '&icirc;'},	
			'Ò': {'code': '&Ograve;'},
			'ò': {'code': '&ograve;'},
			'Ó': {'code': '&Oacute;'},		
			'ó': {'code': '&oacute;'},
			'Ô': {'code': '&Ocirc;'},
			'ô': {'code': '&ocirc;'},	
			'Õ': {'code': '&Otilde;'},
			'õ': {'code': '&otilde;'},
			'Ù': {'code': '&Ugrave;'},	
			'ù': {'code': '&ugrave;'},
			'Ú': {'code': '&Uacute;'},
			'ú': {'code': '&uacute;'},	
			'Û': {'code': '&Ucirc;'},
			'û': {'code': '&ucirc;'}
		};
	}
	
	if (document.getElementById('ntags').checked){
		htmlCodes['<'] = {'code': '&lt;'};
		htmlCodes['>'] = {'code': '&gt;'};
	}
		
	var result=document.getElementById('from').value;
	for (var i in htmlCodes){
		result = result.replaceAll(i,htmlCodes[i].code);
	}
	document.getElementById('to').value=result;

}
</script>
</head>
<body>
<div id="conversor">
	Fonte:<br>
	<textarea id="from"></textarea>
	<br>
	<br>
	<label for="nAcentos">Converter Acentos</label>
	<input type="checkbox" value="1" name="nAcentos" id="nAcentos" checked> 
	<br>
	<label for="ntags">Converter Tags</label>
	<input type="checkbox" value="1" name="ntags" id="ntags"> 
	<br>
	<label></label><input type="button" value="Converter" onclick="javascript:conversor()">
	<br>
	<br>
	Resultado:<br>
	<textarea id="to"></textarea>
</div>
</body>
</html>

Um comentário em “Substituindo palavras no JavaScript com replaceAll

  • 1 de fevereiro de 2012 em 10:53
    Permalink

    Hehe, the post took quite a while to read but it sure worth it

    Resposta

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Blue Captcha Image
Atualizar

*

Facebook

Get the Facebook Likebox Slider Pro for WordPress
WordPress SEO fine-tune by Meta SEO Pack from Poradnik Webmastera