方法一先将字符串转换为单个字母的数组,遍历判断是否跟大写的一样,如果一样就转换成小写,不一样就转换为大写
方法二遍历字符串,如果是跟其大写的一致就将其小写的拼接到新的字符串
//方法一:
function processString (s) {
var arr = s.split('');
var new_arr = arr.map((item) => {
return item === item.toUpperCase() ? item.toLowerCase() :
item.toUpperCase();
});
return new_arr.join('');
}
console.log(processString('AbC'));
//方法二:
function swapString(str) {
var result = ''
for (var i = 0; i < str.length; i++) {
var c = str[i]
if (c === c.toUpperCase()) {
result += c.toLowerCase()
} else {
result += c.toUpperCase()
}
}
return result
}
swapString('ADasfads123!@$!@#')
// =>'adASFADS123!@$!@#'
方法三:可以利用正则表达式
let str = 'AbC' // ‘AbC’为要取反的字符串
str = str.replace(/[a-zA-Z]/g,content => {
//content=> 每次正则匹配的结果
//验证是否为大写字母(2种):
//1.把字母转换为大写后看是否和之前一样;如果一样说明原字母是大写,将原字母转换成大写即可。反之同理。
//content.toUpperCase() === content
//2.在ASCII表中找到大写字母的取值范围进行判断(65-90)。
//content.charCodeAt() >= 65 && cootent.charCodeAt() <= 90
return content.toUpperCase() === content ? content.toLowerCase() : content.toUpperCase();
})
console.log(str);