【背景】
用户经常要求某个字段要求限制填写多少字,可是js通过value.length取出来的往往跟实际字数相差很多。经常有用户抱怨,明明没写那么多字,可是系统却提示超出字数限制。于是,我研究了word计算字数的规则,写了一段这样程序。
【参考代码】
//用word方式计算正文字数
function fnGetCpmisWords(str){
sLen = 0;
try{
//先将回车换行符做特殊处理
str = str.replace(/(\r\n+|\s+| +)/g,"龘");
//处理英文字符数字,连续字母、数字、英文符号视为一个单词
str = str.replace(/[\x00-\xff]/g,"m");
//合并字符m,连续字母、数字、英文符号视为一个单词
str = str.replace(/m+/g,"*");
//去掉回车换行符
str = str.replace(/龘+/g,"");
//返回字数
sLen = str.length;
}catch(e){
}
return sLen;
}
说明:
计算的时候用了一个特殊的汉字"龘"拆分,实在想不到更好的,如果有好的方法,烦请说一下。