JS正则中文字节数
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; }