zoukankan      html  css  js  c++  java
  • 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

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

  • 相关阅读:
    程序安装打包
    sql 2005 分页存储过程
    带线的无限级下拉树列表
    MapXtreme 2005 学习心得 概述(一)
    存储过程中用到的年,月,周的函数
    委托/事件/线程传参简单理解
    清除svn/vss小工具
    查看数据库连接数
    MapXtreme 2005 学习心得 使用WebTool工具(七)
    C#日期格式化
  • 原文地址:https://www.cnblogs.com/ffjiang/p/3452189.html
Copyright © 2011-2022 走看看