JS如何识别汉字并且将其分配未两个字符长度?

wangxj0600 2002-10-22 02:03:00
JS如何识别汉字并且将其分配未两个字符长度?比如我
var str="啦啦";
alert(str.length);
会得出2,而如果str="la"也会得出2。怎么才能判断是中文么?
...全文
132 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
ALAN_1999 2002-11-11
  • 打赏
  • 举报
回复
vivanboy(被迫早起的鸟儿)(★★★★★) 有这样一个回答:
<?
function checkGBK($str,$lenStart,$lenEnd){//检查是否符合规定长度的gbk汉字
$strLen=strlen($str)/2;
if($strLen>$lenEnd||$strLen<$lenStart) return false;
for($n=0;$n<strlen($str);$n+=2){
$fs=ord($str[$n]);
$ss=ord($str[$n+1]);
if(!(($fs>175&&$fs<248&&$ss>160&&$ss<255)||($fs>128&&$fs<161&&$ss>63&&$ss<255)||($fs>169&&$fs<255&&$ss>63&&$ss<161))) return false;
}
return true;
}

function checkGB2312($str,$lenStart,$lenEnd){//检查是否符合规定长度的gb2312汉字
$strLen=strlen($str)/2;
if($strLen>$lenEnd||$strLen<$lenStart) return false;
for($n=0;$n<strlen($str);$n+=2){
$fs=ord($str[$n]);
$ss=ord($str[$n+1]);
if(!($fs>175&&$fs<248&&$ss>160&&$ss<255)) return false;
}
return true;
}

//由于gbk向后兼容gb2312,扩充了一些汉字,并包括所有繁体形式的简体字,而且现在浏览器也默认是gbk,所有建议使用第一个函数checkGBK()来验证
//例:
if(checkGBK("中国人",2,5)) echo "合法";
else echo "不合法";
?>

wangxj0600 2002-11-07
  • 打赏
  • 举报
回复
有什么问题可以上msn找我,我的email是wxj@cgrs.zgb.com.cn
Reker熊 2002-10-22
  • 打赏
  • 举报
回复
以下文本框计算出实际长度,汉字2字节<br>
<input type=text name=txt>
<input type=button value=ok onclick="cc()">
<script language=javascript>
function cc()
{
var j = 0;
var s = document.all.txt.value;
if (s=="")return;
if (/[^\x00-\xff]/g.test(s)) alert("含有汉字");
else alert("全是字符");
for (var i=0; i<s.length; i++)
{
if (s.substr(i,1).charCodeAt(0)>255) j = j + 2;
else j++
}
alert("字符数:"+j);
}
</script>

87,922

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧