angularjs里对JS的lowercase和uppercase的完善

读angularjs的源码开头。

   var lowercase = function (string) {
        return isString(string) ? string.toLowerCase() : string;
    };

    var uppercase = function (string) {
        return isString(string) ? string.toUpperCase() : string;
    };

  function isString(value) {
        return typeof value == 'string';
    }

一看知道是大小写的互相转换,不过angular.js为了保证js的toLowerCase会出现异常 因此又补充了两个方法

    if ('i' !== 'I'.toLowerCase()) {
        lowercase = manualLowercase;
        uppercase = manualUppercase;
    }

    var manualLowercase = function (s) {
        return isString(s)
            ? s.replace(/[A-Z]/g, function (ch) {
            return String.fromCharCode(ch.charCodeAt(0) | 32);
        })
            : s;
    };
    var manualUppercase = function (s) {
        return isString(s)
            ? s.replace(/[a-z]/g, function (ch) {
            return String.fromCharCode(ch.charCodeAt(0) & ~32);
        })
            : s;
    };

详解manualLowercase的方法

首先判断是否是字符串 接着如果在字符串中 发生了"A-Z"之中的字母被替换了,那么替换"A-Z"的就是他相对应的小写字母“a-z”.

"A.charCodeAt(0)"==>65

"A.charCodeAt(0)|32"==>97

"String.fromCharCode(97)"==>a

通过我很不熟悉的位运算符,就这样完成了大小写的互转,写实在有点巧妙,学习了。

 

转载于:https://www.cnblogs.com/ffjiang/p/3452189.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值