javascript 计算文本长度

汉字按照两个字符计算,英文字符按照一个字母计算

$.fn.extend({
	tqMaxLength:function(options){
		var self=$(this);
		
		var defaultOption={
			maxLength:10,
			showSpanId:""
		}
		
		$.extend(defaultOption,options);
		
		self.keyup(function(){
		   var themeVal=self.val();
		   var theVal=themeVal.replace(/[^\x00-\xff]/g, "xx");
		   var themeLength=theVal.length;
		   if(themeLength>defaultOption.maxLength){
		   		var tempLength=0,subLength=0,reg=/^[\x00-\xff]+$/;
		   		for (var i = 0; i < themeVal.length; i++) {
		   			if (reg.test(themeVal.charAt(i)))
					{
						tempLength++;
					}else{
						tempLength=tempLength+2;
					}
					subLength++;
					if(tempLength==defaultOption.maxLength){
						break;
					}else if(tempLength>defaultOption.maxLength){
						subLength--;
						break;
					}
				}
		   		self.val(themeVal.substring(0,subLength));
		   }
	       $("#"+defaultOption.showSpanId).text(self.val().replace(/[^\x00-\xff]/g, "xx").length+"/"+defaultOption.maxLength);
	    });
	}
});

  其中有两个参数,一个是显示地方的id,另一个是限制的长度。

  例如:

  $("#userName").tqMaxLength({

    maxLength:50,

    showSpanId:"showLength"

  });

posted @ 2012-05-04 08:48  一思  阅读(724)  评论(0编辑  收藏  举报