js验证不能输入汉字怎么解决?
1个回答
展开全部
1、用正则表达式判断,非常简单,两条代码就可实现,具体如下:
2、用 Unicode 字符范围判断
在 Unicode 字符中,因为汉字的编码都是大于255,所以只要编码大于255的都是汉字,代码如下:
3、当要使用以上两个方法时,十分简单,直接调用即可,具体使用实例如下:
- /**
- 计算指定输入框中字符串的长度
- @param eleInput 指定的输入框或输入框的id, required
- @param maxLength 期望的字符串最大长度, optional, 未指定时,默认取输入框的maxLength属性,未指定maxLength属性时,指定为100字符长度
- @param nativeCharSize,一个汉字的长度,optional,因数据库编码不同,汉字所占用的长度也不同,比如UTF-8编码中,汉字占用3个字符的长度,而GBK编码中汉字则是2个字符的长度。未制定时,默认按2个字符长度计算
- @return 返回计算结果
- */
- function computeLength(eleInput, maxLength, nativeCharSize) {
- var nativeCharRegexp = /[\u4E00-\u9FFF]/;
- var string, char, length = 0;
- var ele = (typeof eleInput == 'string') ? document.getElementById(eleInput) : eleInput;
- if(maxLength == undefined) {
- maxLength = ele.maxLength || 100;
- }
- if(nativeCharSize == undefined) {
- nativeCharSize = 2;
- }
- string = (ele.value || '').split('');
- for(var i = 0, count = string.length; i < count; i ++) {
- char = string[i];
- if(nativeCharRegexp.test(char)) {
- length += nativeCharSize;
- } else {
- length ++;
- }
- }
- return length;
- }
- function checkLength(target) {
- var maxLength = 100; // 这是允许输入的最大数
- var targetLength = computeLength(target, maxLength, 2); // 这个是已输入的字符
- var leftLength =maxLength - targetLength;
- document.getElementById("size").innerHTML = leftLength; // 这里的size就是需要变换数字地方的Id
- }
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询