【发布时间】:2017-03-20 16:44:22
【问题描述】:
有人可以帮我在javascript上使用这个功能吗?
我在 javascript 上完成了上面的这个功能,但是当我尝试在这个字符串上使用时:Item 1 – 1 X 500 OS 129062。 MATERIAL DE NOSSA PROPRIEDADE QUE SEGUE P/ANALISE E TESTE, SEM DÉBITO (AMOSTRA GRÁTIS)。
我收到一个错误:索引 1 附近的未封闭组
请帮帮我
function retiraAcentos(texto) {
var caracEspec = '.áàãâäéèêëíìîïóòõôöúùûüçñÁÀÃÂÄÉÈÊËÍÌÎÏÓÒÕÖÔÚÙÛÜÇÑ/';
var caracComum = '.aaaaaeeeeiiiiooooouuuucnAAAAAEEEEIIIIOOOOOUUUUCN.';
var textoResultado = '';
for (i = 0; i < texto.length; i++) {
var letra = texto.substr(i, 1);
if ((letra == "*") || (letra == "?") || (letra == "\n") || (letra == '+')) {
continue;
}
var posLetra = caracEspec.search(letra);
if (posLetra >= 0) {
textoResultado += caracComum.substr(posLetra, 1);
} else {
textoResultado += letra;
}
}
return textoResultado;
}
【问题讨论】:
-
此类示例输入发生错误:
"foobar".search("(")。请参阅@x-ray 答案以获取解释。 -
我认为问题在于
search函数,因为它采用正则表达式。并且绝对单人(是一个未封闭的组。最好使用indexOf替代方案。
标签: javascript regex search