将html文本输入限制为特定的字节数?

时间:2013-06-05 20:56:02

标签: javascript html html5 validation html-form

使用HTML5(或不太优选的JavaScript)是否可以将input的最大长度限制为特定的字节数?

我意识到我可以用以下内容限制多个字符:

<input type="text" maxlength="4" />

但这还不够好,因为我最多可以输入四个双字节字符。

显然我正在验证这个服务器端,但我也想在浏览器端验证这一点。

编辑:为了清楚起见,我确实希望能够支持UTF-8。对不起@elclanrs。

2 个答案:

答案 0 :(得分:1)

这个脚本有几个小的UX故障可以清理,但它确实完成了我在chrome中测试它时所概述的基本任务:

<input id=myinp />


<script> // bind handlers to input:
   myinp.onkeypress=myinp.onblur=myinp.onpaste= function vld(e){
     var inp=e.target;
     // count bytes used in text:
     if( encodeURIComponent(inp.value).replace(/%[A-F\d]{2,6}/g, 'U').length > 4){
        // if too many bytes, try to reject:
        e.preventDefault;
        inp.value=inp.val||inp.value;
        return false;
     }
     // backup last known good value:
    inp.val=inp.value;
   }

</script>

答案 1 :(得分:0)

如果估算不够好,我会过滤所有非单字节字符并计算它们。