gpt4 book ai didi

javascript - 语法错误: Unterminated parenthetical,如何处理 "( )"

转载 作者:行者123 更新时间:2023-11-28 16:59:43 25 4
gpt4 key购买 nike

我正在尝试清理用户输入的字符串(任何包含不需要的字符、变音符号等的内容),并仅替换为一个不带空格的字符串。

我遇到了这个错误:

Execution failed: SyntaxError: Unterminated parenthetical.

它停在这一行:idoff = accented.search(a2.charAt(i));

当我们遇到几个重音字母(变音符号)时,我能够更新旧的遗留代码。我看到了可以用来解决它的代码,但不知何故我不知道如何解决这个问题。

function clean(a2) {


/* if string contains accented letters, index below and use regular text */

var accented = 'ÁÀÂÃÄÄÅÆáàâãäåąÇçćčÐÉÉÊËèéêëðęÍÍÎÏíîïłÑñńÖÓŐÓÔÕØöóőôõøÜŰÙÚÛÜüűúûŠšŸÿýŽžŻżŁ';
var regularText = 'AAAAAAAAaaaaaaaaCcccDEEEEeeeeeeIIIIiiilNnnOOOOOOOooooooUUUUUUuuuuSSYyyZzZzL';
var idoff = -1,new_text = '';
var lentext = a2.toString().length -1

for (i = 0; i <= lentext; i++) {
idoff = accented.search(a2.charAt(i));
if (idoff == -1) {
new_text = new_text + a2.charAt(i);
} else {
new_text = new_text + regularText.charAt(idoff);
}
}
// return new_text;

/* Locate where in the string that contains ":", remove it including spaces and change string to lowercase */

var space = new_text.indexOf(":");
if (space > -1) {
var answer = new_text.substring(space);
answer = answer.replace(/[\.,-\/#!$%\^&\*;:{}=\-_`~()"'+@<>?]/g,"")
answer = answer.replace(/ /g,"");
answer = answer.toLowerCase();
} else {
var answer = new_text;
answer = answer.replace(/[\.,-\/#!$%\^&\*;:{}=\-_`~()"'+@<>?]/g,"")
answer = answer.replace(/ /g,"");
answer = answer.toLowerCase();
}
return answer;
}

如果字符串是这样的ABC-XYZ-LMN (AB12): XxxX Set Çompanÿ我想把它清理到这个xxxxsetcompany .

最佳答案

String.prototype.search需要一个正则表达式,但您传递的是一个字符(字符串)。当您迭代 a2 时,您最终会遇到一个左括号(“AB12”周围的括号)。左括号不是有效的正则表达式。

要解决此问题,您可以使用 String.prototype.includes相反。

但是,我认为解决您的问题的更优雅的解决方案可能如下所示:

function clean(a2) {
/* if string contains accented letters, index below and use regular text */
const accented = 'ÁÀÂÃÄÄÅÆáàâãäåąÇçćčÐÉÉÊËèéêëðęÍÍÎÏíîïłÑñńÖÓŐÓÔÕØöóőôõøÜŰÙÚÛÜüűúûŠšŸÿýŽžŻżŁ';
const regularText = 'AAAAAAAAaaaaaaaCcccDEEEEeeeeeeIIIIiiilNnnOOOOOOOooooooUUUUUUuuuuSSYyyZzZzL'.split('');

let answer = '';

a2.split('').forEach((char) => {
let accentIndex = accented.indexOf(char);

if (accentIndex > -1) {
answer += regularText[accentIndex];
} else {
answer += char;
}
});

answer = answer.replace(/\W/gi, '');

return answer.toLowerCase();
}

console.log(clean('ABC-XYZ-LMN (AB12): XxxX Set Çompanÿ'));

关于javascript - 语法错误: Unterminated parenthetical,如何处理 "( )",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57910429/

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