gpt4 book ai didi

javascript - 特殊字符替换功能

转载 作者:行者123 更新时间:2023-11-30 10:33:08 25 4
gpt4 key购买 nike

我有一个 JavaScript 函数,可以用普通字符替换特殊字符。

当我输入句点 . 时,它会更改为 a

示例:info@example.com 更改为 info@exampleacom

我做错了什么?

function retiraAcento(palavra, obj) {
com_acento = 'áàãâäéèêëíìîïóòõôöúùûüçÁÀÃÂÄÉÈÊËÍÌÎÏÓÒÕÖÔÚÙÛÜÇ';
sem_acento = 'aaaaaeeeeiiiiooooouuuucAAAAAEEEEIIIIOOOOOUUUUC';
nova = '';
for (i = 0; i < palavra.length; i++) {
if (com_acento.search(palavra.substr(i, 1)) >= 0) {
nova += sem_acento.substr(com_acento.search(palavra.substr(i, 1)), 1);
} else {
nova += palavra.substr(i, 1);
}
}
//obj.value = nova.toUpperCase();
obj.value = nova
}
$(document).ready(function () {
$(":input").live('blur', function () {
retiraAcento(this.value, this);
});
});

最佳答案

String.search接受一个正则表达式作为参数,而不是一个哑字符串。字符 . 在正则表达式中有特殊含义;它的意思是“匹配任何字符”。

因此,当您的代码最终执行 com_acento.search(".") 时,结果始终为 0:点与第一个字符匹配。此外,正则表达式中还有其他具有特殊含义的字符也会导致您的代码无法正常运行。

使用 indexOf 解决您的问题而不是 search

关于javascript - 特殊字符替换功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15670055/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com