zoukankan      html  css  js  c++  java
  • input限制字符长度

    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="utf-8">
    <title>demo</title>
    </head>
    <body>
        <input id="text" placeHolder="最大支持12个字节" maxlength="12" />
        <script type="text/javascript">
         var Str = {
             byteLen : function (str){
                //正则取到中文的个数,然后len*count+原来的长度。不用replace
                str += '';
                var tmp = str.match(/[^x00-xff]/g) || [];
                return str.length + tmp.length;
            },
            getMaxlen : function(str,maxlen){
                var sResult = '', L=0, i=0, stop = false, sChar;
                if(str.replace(/[^x00-xff]/g,'xxx').length <= maxlen){
                    return str;
                }
                while(!stop){
                    sChar = str.charAt(i);
                    L+= sChar.match(/[^x00-xff]/) ? 2 : 1;
                    if(L > maxlen){
                        stop = true;
                    }else{
                        sResult+=sChar;
                        i++;
                    }
                }
                return sResult;
            }
        };
        var inputLock = false;
        document.querySelector('#text').addEventListener('compositionstart', function(){
            inputLock = true;
        })
        document.querySelector('#text').addEventListener('compositionend', function(){
            inputLock = false;
            var value = this.value,
                maxlength = this.getAttribute('maxlength');
            if(Str.byteLen(value) > maxlength){
                this.value = Str.getMaxlen(value, maxlength);
            }
        })
        document.querySelector('#text').addEventListener('input', function(){
            if(!inputLock){
                var value = this.value,
                    maxlength = this.getAttribute('maxlength');
                if(Str.byteLen(value) > maxlength){
                    this.value = Str.getMaxlen(value, maxlength);
                }
            }
        });
        </script>
    </body>
    </html>
  • 相关阅读:
    macOS 10.13 High Sierra PHP开发环境配置
    Mac brew安装redis
    【PHP】进一法取整、四舍五入取整、忽略小数等的取整数方法大全
    解决上传app store卡在正在通过iTunes Store鉴定
    PHP 时间操作
    GO获取随机数
    GO语言数组,切片,MAP总结
    性能规范参考指标
    Jmeter聚合报告理解
    性能概述及技术指南
  • 原文地址:https://www.cnblogs.com/jkr666666/p/11173424.html
Copyright © 2011-2022 走看看