这是在项目制作中,积累到的一个东西,感觉效果还可以,现在贴上效果:
那么,在页面上,我们需要检测两个东西,一个就是字节数,一个就是字符数。
由于数据库中,要求title的长度字节数为200,那么具体的js代码如下:
/*************************************************************************
*CodeBy:SCYCodeDate:3月11日12:01:16
*DESC:主要是用来判断当前输入的字节数,以便做到限制输入标题的长度功能
**************************************************************************/
varmatchWords;
functionnotifyTextLength(){
varinputNum=document.getElementById("txtTitle").value.replace(/[^\x00-\xff]/g,"**").length;//得到输入的字节数
if(inputNum<=200){
matchWords=document.getElementById("txtTitle").value.length;
document.getElementById("inputedWord").innerHTML=inputNum+"字节,"+matchWords+"字符";
document.getElementById("inputtingWord").innerHTML=(200-inputNum)+"字母,"+(Math.round(((200-inputNum)/2)-0.5))+"汉字";
}
if(inputNum>200){
document.getElementById("txtTitle").value=document.getElementById("txtTitle").value.substring(0,matchWords);//如果超过200字节,就截取到200字节
}
}
其中,matchWords代表的是当字节数小于200的情况下,匹配的字符的个数;inputNum则是输入的字节数。
当标题输入的字节数大于200的时候,就按照字符个数进行截取。
html代码如下:
<inputid="txtTitle"type="text"class="inputText"runat="server"onpropertychange="notifyTextLength();"/>
当前已经输入<spanid="inputedWord"style="color:red"></span>还可以输入<spanid="inputtingWord"style="color:Red;"></span>