解决文本框中输入字符限制---精确控制中文占两个字节,英文占一个字节~

<!DOCTYPE html>
<html>
<head lang="en">
    <meta charset="UTF-8">
    <title></title>
    <script src="scripts/zepto.min.js"></script>
    <script>

        $(function () {
            $('#modifyPluginName').on('input', function (e) {
                var $that =  $(this),
                        limitLen = 10;                            //定义所需字节数
                $that.attr('maxlength',limitLen);
                setTimeout(function(){
                    var value =  $that.val(),
                        reg = /[\u4e00-\u9fa5]{1}/g,             //中文
                        notReg = /\w{1}/g;                      //非中文
                    var resultCn = value.match(reg);
                    var resultEn = value.match(notReg);
                    if(resultCn){
                        limitLen = limitLen - (resultCn.length*2);
                    }
                    if(resultEn){

                        limitLen = limitLen - resultEn.length;
                    }
                    if(limitLen<=0){
                        var finalLen = value.length+limitLen;
                        value = value.substring(0,finalLen);
                        $that.attr('maxlength',limitLen);
                        $that[0].value = value;
                    }
                },0);

            });
        });

    </script>
</head>
<body>
请输入:<input type="text"  id="modifyPluginName" maxlength="10">
</body>
</html>
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
el-input文本框的长度可以通过给该元素加上maxlength属性来实现。比如,在普通的<input>标签,可以使用maxlength属性限制输入文本框的长度,例如<input type="text" value="我是一个输入框" maxlength="5" />。但在饿了么框架,使用maxlength属性来设置el-input文本框的长度是无效的。为了解决这个问题,可以给el-input文本框加上一个oninput属性来实现长度限制,例如<el-input type="text" oninput="if(value.length>6)value=value.slice(0,5)"></el-input>。这样,文本框输入的内容就会限制在5个字符。 然而,如果我们想限制输入的是100个字节,就需要考虑英文字符中文字符字节数。一个英文字符一个字节,一个中文字符两个字节,一个数字也是一个字节。所以,如果输入的是英文中文的混合体,需要计算输入输入的长度。 我们可以使用以下方法来计算输入的长度。首先,给el-input加上一个@change事件来触发检查输入内容的方法,例如: <el-input v-model="form.number" placeholder="请输入产品编号" @change="checkInput"></el-input>。然后,在checkInput方法,通过遍历输入字符串,判断其字符中文还是英文,然后累加对应的字节数。最后,根据限制的最大输入长度和计算出的字节数,判断是否超过了限制,如果超过了,则截取字符串到限制的长度。这样就实现了输入框长度的限制。 总结起来,el-input文本框的长度可以通过给元素加上maxlength属性来实现,在饿了么框架,可以使用oninput属性来实现长度限制。如果需要限制的是字节数,可以通过检查输入内容的方法来计算输入的长度,并根据限制的最大输入长度进行截取。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [给 el-input 设置内容长度的方法](https://blog.csdn.net/qq_44603011/article/details/118977215)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* *3* [el-input 输入框长度的限制问题](https://blog.csdn.net/cm159177/article/details/118894433)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值