`
LiYunpeng
  • 浏览: 939563 次
  • 性别: Icon_minigender_1
  • 来自: 大连
社区版块
存档分类
最新评论

使用JS来做中英文混合字符长度限制

阅读更多
最近在写一个系统,但是数据库中设计的是全汉字的长度为最大

那么在HTML端,取字符长度来说,str.length的长度不管用英文,只计算单纯的长度,而不是占用的字符长度

下面是自己综合网上的 计算字符长度,以及截取字符长度自己组装写了的一套方法

$(document).ready(function() {
	$( "input,textarea" ).live("input",function() {
		debugger;
		var limit = $(this).attr("charLength"); 
		if(limit==""||limit==null) {
			return;
		}
		var length = fucCheckLength($(this).val());
		if(length>limit) {
			$(this).val(subCharStr($(this).val(),limit));
		}
	});
});

function fucCheckLength(strTemp) {
    var i, sum;   
    sum = 0;   
    for (i = 0; i < strTemp.length; i++) {   
        if ((strTemp.charCodeAt(i) >= 0) && (strTemp.charCodeAt(i) <= 255)) {   
            sum = sum + 1;   
        } else {   
            sum = sum + 2;   
        }   
    }   
    return sum;   
}

function subCharStr(str,n){  
   var _len=fucCheckLength(str,n);
   if(_len>n){  
     var _newLen=Math.floor(n/2);  
     var _strLen=str.length;
     var _newStr = "";
     for(var i=_newLen;i<=_strLen;i++){
    	 var tmpStr = str.substr(0,i);
         if(fucCheckLength(tmpStr)>n){
             return _newStr;
             break;
        } else {
        	_newStr = tmpStr;
        }
     }  
   }else{  
     return str;  
   }  
}


这样只要在Input中添加charLength属性,并给一个字符长度的值就OK了

比如,限制的为5
那么3个汉字就会被截取成两哥
如果是两个汉字一个英文字母,则还是5个字符
分享到:
评论

相关推荐

    js中英文混合的字符串换行

    //不分中英文按字符串长度循环每个字符截取换行 这个是隔10个字符换行一次 String psStr="asdfghjklzxcvbnmzxcvbnmsdfghaaaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbb"; String aa=""; String bb=""; for (int i...

    在javascript中如何得到中英文混合字符串的长度

    有同事在公司的OA上发了个贴子,介绍在javascript中如何得到中英文混合字符串的长度。 用的是正则表达式。 代码如下: var str = ”坦克是tank的音译”; var len = str.match(/[^ -~]/g) == null ? str.length : str....

    JavaScript获取中英文混合字符串长度的方法示例

    主要介绍了JavaScript获取中英文混合字符串长度的方法,结合实例形式分析了javascript通过遍历转换字符串实现统计字符串长度的操作技巧,需要的朋友可以参考下

    js计算字符串长度

    js计算字符串长度,可以输入中文、英文、数字、中英文数字混合等,最后计算结果为字符串所占字节个数

    js处理包含中文的字符串实例

    js中String类型自带的属性length获取的是字符串的字符数目,但是前端经常会需要限制字符串的显示长度,一个中文字符又大概占两个英文小写字符的显示位置,所以中英文混合的情况下用length值来判断显示长度往往并不...

    JS实现中英文混合文字溢出友好截取功能

    在显示字符串的时候,避免字符串过长往往会对字符串进行截取操作,通常会用到js的 substr 或者 substring方法, 以及 字符串的length属性 substr() 方法可在字符串中抽取从 start 下标开始的指定数目的字符。 ...

    php数据操作类mydb.php,跳转类redir.php,上传文件类upfile,常用的一些验证类

    数据库操作类 把添加,删除,修改,单独查看,分页查看表的所有操作...chy.php 常用的功能内,一些字符串的判断符合手机,电话,email,等的正则,字符串的长度,截取等包含中英文混合的处理 ************** 以后会继续丰富这些类

    客户端统一验证JavaScript函数库及示例源码

    //控件接受的字符长度大小 this.TextBox1.Attributes.Add("nullable", "no");//不可为空,默认可为空 this.TextBox1.Attributes.Add("datatype", "number");//控件数据类型 两者代码是一样的,不过一般在后台代码(....

    ASP200问.EXE

    18.如何计算中英文混合字符串的长度 19.如何判断字符串是否以指定字符串开头或结尾 20.如何判断字符是否是英文字符 21.如何检测字符串出现的次数 22.如何过滤字符串中的HTML代码 23.如何截取字符串 24.如何实现字符...

Global site tag (gtag.js) - Google Analytics