JS中如何把一个字符串大小写取反

前端一个经典面试题,如何把字符串的大小取反(大写变小写,小写变大写),例如'Hello World' 变成'hELLO wORLD'

思路

第一步:获取字符串中所有的大小写字母,因为只有字母才能进行大小写转换,汉字不能进行转换;

第二步:使用正则表达式来判断每一个字母;

第三步:方法1:把所有的字母转换为大写后看和之前的是否一样,如果一样,之前的也是大写;
方法2:在ASCII表中找到大写字母的取值范围进行判断(65-90);

第四步:将代码取反;

需要使用的方法

replace()用于在字符串中用一些字符替换另一些字符,或替换一个与正则表达式匹配的子串;

toUpperCase() 方法用于把字符串转换为大写。

toLowerCase() 方法用于把字符串转换为小写。

代码

let str = 'Hello世界和平World!'
    //str.replace(/[a-zA-Z]/g 通过正则表达式来捕获所有字母 content为捕获结果
    str = str.replace(/[a-zA-Z]/g,function(content){
        //方法一:content.toUpperCase()===content
        //方法二:content.charCodeAt()>=65 && content.charCodeAt()<=90

        //此段代码逻辑:将捕获的结果转化为大写字母与捕获结果来进行判断,若为true表示捕获的结果为大写字母,需要转化为小写字母,否则转为大写字母
        return content.toUpperCase()===content?content.toLowerCase():content.toUpperCase()
    });
    console.log(str)
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容