限制文本框输入N个字符的使用
这里的字符指的是汉字占两个字节,而数字及其字母占一个字节,如果使用substr肯定是不可以的,所以要做的就是
1. 首先区分出来是两个字节的字符还是一个字节的字符;
2. 使用charCodeAt和String.fromCharCode即可进行相互转换。
代码如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 | function validatePostponeValue(obj, objLength) { var executeResult = false ; var value = obj.value; var byteLen=0,len=value.length; var newValue = "" ; if (value) { for ( var i=0; i<len; i++) { if (value.charCodeAt(i) > 255) { byteLen += 2; if (byteLen <= 18) { //alert(String.fromCharCode(value.charCodeAt(i))); newValue += String.fromCharCode(value.charCodeAt(i)); } } else { byteLen ++; if (byteLen <= 19) { //alert(String.fromCharCode(value.charCodeAt(i))); newValue += String.fromCharCode(value.charCodeAt(i)); } } } } if (byteLen <= 0) { //alert("不能为空!"); obj.focus(); } else if (byteLen > objLength) { alert( "最多只能输入十个汉字(20个字符)。" ); obj.focus(); obj.value = newValue; //value.substr(0, objLength -1); } else { executeResult = true ; } return executeResult; } |
【推荐】还在用 ECharts 开发大屏?试试这款永久免费的开源 BI 工具!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步