在js中直接使用字符串的length属性,返回string中的中文是1,这在有些情况下不是我们想要的,下面提供一个方法,判断出中文,然后返回长度。
var getByteLen = function (str) {
var len = 0;
for (var i = 0; i < str.length; i++) {
if (str[i].match(/[^x00-xff]/ig) != null){ //判断全角
//if (str[i].match(/[u4E00-u9FA5]/g) != null) //判断是否为中文
len += 2;
}else{
len += 1;
};
}
return len;
}
var str = '2ga哈哈245滴很3地h';
getByteLen(str); //18
代码中的两种判断方式都行, 其中 [^x00-xff] 表示ASCII 编码不在0-255的其他字符汉字或者全角字符之类的。
另外,判断是否中文的方法还有很多,大家可以自行搜索一下。
例1,判断输入是否为中文的函数
function ischinese(s){
var ret=true;
for(var i=0;i
return ret;
}
例2,中文判断函数,允许生僻字用英文“*”代替。返回true表示是符合条件,返回false表示不符合。
function isChinese(str){
var badChar ="ABCDEFGHIJKLMNOPQRSTUVWXYZ";
badChar += "abcdefghijklmnopqrstuvwxyz";
badChar += "0123456789";
badChar += " "+" ";//半角与全角空格
badChar += "不包含*或.的英文符号
if(""==str){
return false;
} // www.111com.net
for(var i=0;i var c = str.charAt(i);//字符串str中的字符
if(badChar.indexOf(c) > -1){
return false;
}
}
return true;
}
例3,数字判断函数,返回true表示是全部数字,返回false表示不全部是数字
function isNumber(str){
if(""==str){
return false;
}
var reg = /D/;
return str.match(reg)==null;
}
疯狂医院达什医生中文版(Crazy Hospital)
疯狂医院达什医生最新版是一款医院模拟经营类游戏,逼真的场景画
宝宝庄园官方版
宝宝庄园官方版是一款超级经典好玩的模拟经营类型的手游,这个游
桃源记官方正版
桃源记是一款休闲娱乐类的水墨手绘风格打造的模拟经营手游。玩家
长途巴士模拟器手机版
长途巴士模拟器汉化版是一款十分比真好玩的大巴车模拟驾驶运营类
房东模拟器最新版2024
房东模拟器中文版是一个超级有趣的模拟经营类型的手游,这个游戏