gpt4 book ai didi

javascript - 在 Coderbytes Letter Changes 练习中遇到处理数字和特殊字符的问题

转载 作者:行者123 更新时间:2023-12-02 22:17:11 28 4
gpt4 key购买 nike

您好,到目前为止,我还没有找到任何可以解决我遇到的问题的内容。在本练习中,唯一应该更改的是字母字符。然而,在测试用例中,它包含数字和特殊字符,这些字符也会被更改,但它们不应该被更改。

我有以下代码:

function LetterChanges(str) { 

let newTxt = ""; // stores string after changing each character to the next in the alphabet
let newTxt2 = '';
//iterate through the string
for(let i=0;i<str.length;i++){

switch(str[i]){
case ' ':
break;
case 'z':
newTxt = 'a';
break;
case 'Z':
newTxt = 'A';
break;

default:
newTxt = newTxt.concat(String.fromCharCode(str.charAt(i).charCodeAt(0) + 1));
break;
}

//uppercase vowels
switch(newTxt.charAt(i)){
case 'a': case 'e': case 'i': case 'o': case 'u':
newTxt2 += newTxt.charAt(i);
break;
default:
newTxt2 += newTxt.charAt(i);
break;

}
}
str = newTxt;

return str;

}

第一个 switch 语句的默认值可以使用 if/else 或嵌套开关来实现,如果当前字符等于使用正则表达式的特殊字符或数字,则只需将字符添加回来而不更改,如果不是改变?

我对 Javascript 还很陌生。我已经在 Google 上搜索了一个多小时。

谢谢

最佳答案

经过几个小时的研究和尝试不同的事情后,我终于找到了解决方案:

const LetterChanges = str => {
let newTxt = str.replace(/[a-z]/gi, function(c){
switch(c){
case 'z': return 'a';
case 'Z': return 'A';
default: return String.fromCharCode(1+c.charCodeAt(0));
}
});
return newTxt.replace(/[aeiou]+/g, function(vowel){
return vowel.toUpperCase();
});



}

谢谢

关于javascript - 在 Coderbytes Letter Changes 练习中遇到处理数字和特殊字符的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59349797/

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