JavaScript本身提供length可用于判断字符长度。
但本次在项目中使用时发现,IE将中文字符也识别为1个字符,与数据库的要求不一致,这样子使得JS的length判断字符长度形同虚设。
网上查到另一种判断字符长度的方法,基本思路是,将一个中文字符转换为两个英文字符,然后再计算字符长度。
基本代码如下:
1 function CheckTextLength() {
2 var testText = $("#txtDetailInfo").val();
3 var textlength = testText.replace(/[^\x00-\xff]/g, "NB").length;
4 if (textlength>500) {
5 alert("输入的字符过长,超过500!本次输入的字符长为:" + textlength);
6 }
7 }
“/[^\x00-\xff]/g”是JavaScript的正则表达式,用于匹配双字节字符(包括汉字在内)。
1 testText.replace(/[^\x00-\xff]/g, "NB")
上述代码将双字节字符(包括汉字)转换为“NB”两个英文字符。后两个字符可任意选择。
这就实现了不分中英文的字符长度判断。