zoukankan      html  css  js  c++  java
  • 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;
       }    
    }  
    }
    啊哈哈哈,超级好用的东东
  • 相关阅读:
    有趣的网站
    Python-Day2
    C# EF增删改查
    LINQ教程
    命名空间“System.Web”中不存在类型或命名空间名称“Optimization”(是否缺少程序集引用?)
    Log4Net组件的应用详解
    log4net应用
    Select count(*)和Count(1)的区别和执行方式
    Ms sql 2005 中的bit 数据类型
    关于CLR、CIL、CTS、CLS、CLI、BCL和FCL
  • 原文地址:https://www.cnblogs.com/zxjyuan/p/1637069.html
Copyright © 2011-2022 走看看