Javascript 错误未捕获语法错误:无效的正则表达式:/(/:未终止的组
我正在检查我的字符串是否有要替换的特殊字符,但是对于下面的字符串,我有以下问题 字符串Javascript 错误未捕获语法错误:无效的正则表达式:/(/:未终止的组,javascript,Javascript,我正在检查我的字符串是否有要替换的特殊字符,但是对于下面的字符串,我有以下问题 字符串 (Lot P Verdes) 功能 function retira_acentos(palavra) { com_acento = 'áàãâäéèêëíìîïóòõôöúùûüçÁÀÃÂÄÉÈÊËÍÌÎÏÓÒÕÖÔÚÙÛÜÇ'; sem_acento = 'aaaaaeeeeiiiiooooouuuucAAAAAEEEEIIIIOOOOOUUUUC'; nova='';
(Lot P Verdes)
功能
function retira_acentos(palavra) {
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);
}
}
return nova.toUpperCase();
}
retira_acentos(palavra){
联合会:联合会:联合会:联合会:联合会:联合会:联合会:联合会:联合会:联合会:联合会:联合会:联合会:联合会:联合会:联合会:联合会:联合会:联合会:联合会:联合会:联合会:联合会:联合会:联合会:联合会:联合会:联合会:联合会:联合会:联合会:联合会:联合会;
sem_acento=‘aaaaeaeeiiiouuuuuucaaaaeeiiouuuuuuuc’;
新星='';
对于(i=0;i=0){
nova+=sem_acento.substr(com_acento.search(palavra.substr(i,1)),1);
}
否则{
新星+=帕拉夫拉宫(i,1);
}
}
返回nova.toUpperCase();
}
错误
行:如果(com_acento.search(palavra.substr(i,1))>=0)
未捕获的语法错误:无效的正则表达式:/(/:未终止的组在正则表达式中,圆括号用于定义组。在这种情况下,正则表达式分析器认为您打开了一个组,但忘了关闭它 我猜你不想打开一个组,你只想匹配文字字符 要匹配文字字符,在javascript正则表达式中,有两种方法:
- 用退格转义字符:
。示例:\
/\(/
- 将您的字符用方括号括起来。例如:
[(]
search
的参数:
search('['+palavra.substr(i,1)+']')
您在这里遇到的问题是,
String#search
需要一个regexp
作为输入,但是,您似乎希望搜索字符串输入,而不是regexp
。在这种情况下,使用String#indexOf
尝试更改这些行,看看它是否提供了所需的输出:
if (com_acento.indexOf(palavra.substr(i,1))>=0) {
nova+=sem_acento.substr(com_acento.indexOf(palavra.substr(i,1)),1);
}
search
使用正则表达式,如果您输入字符串,它会尝试自动将它们转换为一个。但是(
本身并不是一个有效的正则表达式,因为(在正则表达式中有特殊的含义。或者<>代码>字符串y>包含。@ tWHB-NOPE,包括返回布尔值,但是我们的朋友在这里需要一个数字,如您在中间可以看到的。line@Ahmed非常感谢你,它成功了。我现在也明白了错误的原因。