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

$.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"

  });

相关文章:

  • 2022-03-02
  • 2021-10-17
  • 2021-11-04
  • 2021-11-29
  • 2022-12-23
  • 2021-06-29
  • 2021-09-28
猜你喜欢
  • 2021-11-17
  • 2021-07-29
  • 2021-06-25
  • 2021-07-29
  • 2021-12-21
  • 2022-12-23
相关资源
相似解决方案