let str = 'BBBBBgsdff'
str = str.replace(/[a-zA-Z]/g, content => {
// content : 每一次正则匹配的结果
return content.toUpperCase() === content ? content.toLowerCase() : content.toUpperCase()
})
console.log(str)
分析思路
- 大小写取反,最先想到的是替换 replace
- 怎么实现替换,=》通过正则,首先找到所有字母 /[a-zA-Z]/g
- replace() 方法用于在字符串中用一些字符替换另一些字符,或替换一个与正则表达式匹配的子串。
- 实现:如果当前的字母转化为大写还和自己一样,那么他铁定就是大写字母(有点完狼人杀的感觉),利用三木运算,是大写,那么就变为小写,反之
- 每一次正则匹配的结果返回