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

通過我很不熟悉的位運算符,就這樣完成了大小寫的互轉,寫實在有點巧妙,學習了。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM