在标有“WHAT GOES HERE?”的地方,我正在尝试使用RegExp来改变字符串中的字母,同时保持其他字符不变。
function LetterChanges(str) {
str = str.split("");
counter = 0;
str.forEach(function(i) {
switch (i) {
case <!--WHAT GOES HERE?--!>:
newCharCode = i.charCodeAt(0) + 1;
i = String.fromCharCode(newCharCode);
str[counter] = i;
counter += 1;
break;
default:
break;
}
});
str = str.join("");
return str;
}
console.log(LetterChanges('gregz1'));
我认为RegExp / [a-zA-Z] / g应该有效,但它没有。有什么建议吗?
请参阅Using Regular Expressions (RegExp) on a array in a switch statement in Javascript上Jon(@jonnawhat)的笔CodePen。
答案 0 :(得分:0)
您可以在下面的代码段中使用switch
。但这被认为是一种不好的做法(感谢@Bergi的评论)。所以你最好使用普通的if
语句。
function LetterChanges(str) {
str = str.split("");
counter = 0;
str.forEach(function(i) {
switch (true) {
case /[a-z]/.test(i):
newCharCode = i.charCodeAt(0) + 1;
i = String.fromCharCode(newCharCode);
str[counter] = i;
counter += 1;
break;
default:
break;
}
});
str = str.join("");
return str;
}
console.log(LetterChanges('gregz1'));