用javascript限制输入区的中文字符个数

html部分:

<input type="text"value="限制输入10个字" id="rest" datalenght="10" datarest="rest" datamodel="ch">
<div>还可以输入<span id="output">个字</span></div>

代码思路:

1 首先提取出已经输入的字符

2用正则表达式将非中文字符过滤掉

3 将中文字符合成一个字符串,并取得字符串的长度

4 显示剩余的字符串

5 如果字符串已经超过最大长度,则取出最大长度的中文字符

具体代码如下:

 
var show=function () {
    var input=document.getElementById("rest");
    var l=input.getAttribute("datalenght");
    var all=input.value;
    var cll=all.match(/[\u4e00-\u9fa5]/g);//中文的长度
    cl=cll.length;
    var output=document.getElementById("output");
    var rest=l-cl;
    output.innerHTML=rest;
    if(cl>=l){
        var data=input.value;
        data=data.match(/[\u4e00-\u9fa5]/g);
        data=data.join("");
        var text=data.substr(0,10);
        input.value=text;
    }
}
var input=document.getElementById("rest");
input.onfocus=function () {
    show();
}
input.onkeyup=function () {
    show();
}
input.onblur=function () {
    show();
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值