4

使用 HTML5(或者最好是 JavaScript)是否可以将 a 的最大长度限制为input特定的字节数?

我意识到我可以限制为多个字符:

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

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

显然我正在验证这个服务器端,但我也希望在浏览器端这样做。

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

4

2 回答 2

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>
于 2013-06-05T21:45:46.277 回答
0

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

于 2013-06-05T21:06:37.420 回答