在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;
}
茶杯头甜蜜终章dlc 官方手机版v1.0.0.3
下载火柴人传说暗影格斗内置菜单 最新版v3.0.1
下载荒野乱斗测试服 安卓版v61.10.3
下载荒野乱斗彩虹服 安卓版v61.10.3
下载寒霜启示录 安卓版v1.25.10
寒霜启示录是一款生存模拟游戏,不少玩家可能对于末日都有着自己
末日城堡免广告版 安卓最新版v0.7.1
末日城堡免广告版是一款非常好玩的模拟经营类游戏,内部可以不看
甜蜜人生模拟器 最新版v1.4.5
甜蜜人生模拟器是一款非常好玩的模拟恋爱手游,玩家在这里能够对
武器锻造师内置功能菜单 v10.4
武器锻造师内置菜单版是游戏的破解版本,在该版本中为玩家提供了
开放空间overfield 安卓版v1.0.5
开放空间Overfield是一款箱庭养成经营手游,让你在广阔