javascript - 在javascript中替换字符串中的多个字符

标签 javascript html variables cookies replace

我得到了这个不错的代码,但我不知道为什么它不起作用。出于兼容性目的,它应该获取文本输入的值并用它的 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("á","&aacute;");
var rtz1  = rtz0.replace("Á","&Aacute;");

var rtz2  = rtz1.replace("é","&eacute;");
var rtz3  = rtz2.replace("É","&Eacute;");

var rtz4  = rtz3.replace("í","&iacute;");
var rtz5  = rtz4.replace("Í","&Iacute;");

var rtz6  = rtz5.replace("ö","&ouml;");
var rtz7  = rtz6.replace("Ö","&Ouml;");
var rtz8  = rtz7.replace("ő","&&#337;");
var rtz9  = rtz8.replace("Ő","&#336;");
var rtz10 = rtz9.replace("ó","&oacute;");
var rtz11 = rtz10.replace("Ó","&Oacute;");

var rtz12 = rtz11.replace("ü","&uuml;");
var rtz13 = rtz12.replace("Ü","&Uuml;");
var rtz14 = rtz13.replace("ű","&#369;");
var rtz15 = rtz14.replace("Ű","&#368;");
var rtz16 = rtz15.replace("ú","&uacute;");
var uio = rtz16.replace("Ú","&Uacute;");

//Creates a cookie with the final value (different function)
createCookie('reminder',uio,1500);

document.getElementById('reminder1').style.display = '';
}
</script>

最佳答案

您可以为要替换的每个字符创建一个具有键/值对的对象:

var chars = {
    "á" : "&aacute;",
    "Á" : "&Aacute;",
    "é" : "&eacute;",
    "É" : "&Eacute;",
    ...
}

然后在您的 .replace 调用中使用一个函数:

var uio = qwe.replace(/[áÁéÉ]/g,function(c) { return chars[c]; });

您的对象和正则表达式显然需要增长以包含您要替换的所有字符

关于javascript - 在javascript中替换字符串中的多个字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11782481/

相关文章:

javascript - 如何使用 javascript xhr 下载大型视频文件(在 chrome 中)

javascript - 只允许将事件拖到背景事件上

javascript - 我可以在新标签页上运行用户脚本吗?

javascript - 当选择检查时,它必须在 div 标签中显示表单。 div 必须暂时禁用

html - 移动我的导航栏?

javascript - 尝试使用基于内容高度自动扩展和收缩的文本区域创建 React 组件(使用 Sandbox)

html - 如何隐藏网站上的电子邮件地址以防止垃圾邮件?

python - python中如何将两个变量的内容变成一个可调用的变量名?

javascript - 尝试使用按钮切换 bool 变量

jquery - 如何在 mysql 查询中使用变量?