js 字符串偶数(或奇数)位置的字母转换大小写

2025-05-12 20:17:48
推荐回答(1个)
回答(1):

题给错了,(‘abCd’, ‘even’)应该返回 return aBCD。

function changeStringCase(source, position) {
//由于字符串一经声明并赋值是不会变更的,因此将结果先保存入字符数组再在返回时转换为字符串
var charArray = [];
for (var i = 0; i < source.length; i++) {
if ((position == "odd" && (i % 2 == 0)) || (position == "even" && (i % 2 == 1))) {
charArray.push(changeCharCase(source[i]));
} else {
charArray.push(source[i]);
}
}

return charArray.join("");
}

function changeCharCase(sourceChar) {
//取得char的ASCII码值
var charCode = sourceChar.charCodeAt();

if (65 <= charCode && charCode <= 90) {
//如果是大写字符
charCode += 32;
} else if (97 <= charCode && charCode <= 122) {
//如果是小写字符
charCode -= 32;
}

return String.fromCharCode(charCode);
}

document.write(changeStringCase("abCd", "odd"));