• JS判断输入的最大数(一个汉字为二个单位、一个英文字母为一个单位)


    虽然HTML的文本框自代一个验证最大值的函数maxlength,但这家伙不顶用,一个汉字和一个英文字母都是一个单位,这样显然不对。以下是解决方案,我已验证过了
    /////////////////////////////////////////////////////////////////////
    //   判断长度是否合格
    //
    // 引数 s   传入的字符串
    //           n   限制的长度n以下
    //
    // 返回值 false   NG
    //           true    OK
    /////////////////////////////////////////////////////////////////////
    function WidthCheck(s, n){
    var w = 0;
    for (var i=0; i<s.length; i++) {
       var c = s.charCodeAt(i);
       //单字节加1
       if ((c >= 0x0001 && c <= 0x007e) || (0xff60<=c && c<=0xff9f)) {
        w++;
       }
       else {
        w+=2;
       }
    }
    if (w > n) {
       return false;
    }
    return true;
    }
     
    以下是我自己衍生出的验证输入个数的东东:
    <input type="text" size="16" name="num" id="num" onChange="WidthCheck(this,5);"/>

    function WidthCheck(str, maxLen){  

    var w = 0;  
    var tempCount = 0;
    for (var i=0; i<str.value.length; i++) {  
       var c = str.value.charCodeAt(i);  
       //单字节加1  
       if ((c >= 0x0001 && c <= 0x007e) || (0xff60<=c && c<=0xff9f)) {  
        w++;  
      
       }else {    
        w+=2;  
      
       }  
        
       if (w > maxLen) {  
       str.value = str.value.substr(0,i);
       break;
       }    
    }  
    }
    啊哈哈哈,超级好用的东东
  • 相关阅读:
    精简版的MySQL制作步骤
    WCF中常用的binding方式 z
    SQLite的.NET应用自适应32位/64位系统 z
    DEV GridControl 常用属性 z
    SpringBoot项目设置热部署
    SpringBoot整合Quartz定时任务
    单引号、双引号 转义符
    Java几种常见的四舍五入的方法
    Java集合之保持compareTo和equals同步
    你真的了解try{ return }finally{}中的return?(转载)
  • 原文地址:https://www.cnblogs.com/zxjyuan/p/1637069.html
Copyright © 2020-2023  润新知