JS正则中文字节数

作者: siediyer 分类: vue/uniapp/bootstrap/jquery/ 发布时间: 2015-03-31 10:38
var shorttitleobj=document.getElementById("shorttitle");
var shorttitlemsg = document.createElement("span");
insertAfter(shorttitlemsg,shorttitleobj);
shorttitleobj.onfocus=function(){
	shorttitlemsg.innerHTML ='注意:请输入<font color="red">26</font>个字节之间';
}
shorttitleobj.onkeyup=function(){
	var maxl=26;
	//console.log(shorttitleobj.value);
	var ss=checkcharssum(shorttitleobj.value);
	//var ss=shorttitleobj.value.length;	
	if(ss>maxl){
		shorttitlemsg.innerHTML = '已输入了:<font color="red">'+ss+'</font>/'+maxl+' 个字节';
	}else if(ss==0){
		shorttitlemsg.innerHTML ='注意:请输入<font color="red">26</font>个字节之间';
	}else{
		shorttitlemsg.innerHTML = "已输入了:"+ss+"/"+maxl+" 个字节";
	}
}

function insertAfter( newElement, targetElement ){
	var parent = targetElement.parentNode;
	if( parent.lastChild == targetElement ){
		parent.appendChild( newElement, targetElement ); 
	}else{ 
		parent.insertBefore( newElement, targetElement.nextSibling ); 
	}; 
}


function checkcharssum(chars){
	//var result = /^[\u4e00-\u9fa5]$/.test("所");
	var sum = 0; 
	for (var i=0; i<chars.length; i++){ 
		var c = chars.charCodeAt(i);
		if ((c >= 0x0001 && c <= 0x007e) || (0xff60<=c && c<=0xff9f)){ 
			sum++; 
		}else{     
			sum+=2; 
		}
	}
	return sum;
}

 

如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!

Title - Artist
0:00