我得到了这个不错的代码,但我不知道为什么它不起作用。出于兼容性目的,它应该获取文本输入的值并用它的 HTML 代码替换每个给定的国家字符。但是,当我单击该按钮时,该函数返回的字符串没有任何变化。 有什么想法吗?
( jsfiddle )
<a id="reminder1" onclick="document.getElementById('reminder2').style.display = ''; document.getElementById('reminder1').style.display = 'none';">
Set reminder
</a>
<a id="reminder2" class="reminder" style="display:none;">
<input type="text" id="reminderh" size=40 style="font-size:20px;">
<input type="button" value="Set" onclick="csere(document.getElementById('reminderh').value);">
</a>
<script>
function csere(qwe){
document.getElementById('reminder2').style.display = 'none';
var rtz0 = qwe.replace("á","á");
var rtz1 = rtz0.replace("Á","Á");
var rtz2 = rtz1.replace("é","é");
var rtz3 = rtz2.replace("É","É");
var rtz4 = rtz3.replace("í","í");
var rtz5 = rtz4.replace("Í","Í");
var rtz6 = rtz5.replace("ö","ö");
var rtz7 = rtz6.replace("Ö","Ö");
var rtz8 = rtz7.replace("ő","&ő");
var rtz9 = rtz8.replace("Ő","Ő");
var rtz10 = rtz9.replace("ó","ó");
var rtz11 = rtz10.replace("Ó","Ó");
var rtz12 = rtz11.replace("ü","ü");
var rtz13 = rtz12.replace("Ü","Ü");
var rtz14 = rtz13.replace("ű","ű");
var rtz15 = rtz14.replace("Ű","Ű");
var rtz16 = rtz15.replace("ú","ú");
var uio = rtz16.replace("Ú","Ú");
//Creates a cookie with the final value (different function)
createCookie('reminder',uio,1500);
document.getElementById('reminder1').style.display = '';
}
</script>
最佳答案
您可以为要替换的每个字符创建一个具有键/值对的对象:
var chars = {
"á" : "á",
"Á" : "Á",
"é" : "é",
"É" : "É",
...
}
然后在您的 .replace
调用中使用一个函数:
var uio = qwe.replace(/[áÁéÉ]/g,function(c) { return chars[c]; });
您的对象和正则表达式显然需要增长以包含您要替换的所有字符
关于javascript - 在javascript中替换字符串中的多个字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11782481/