以下文本框计算出实际长度,汉字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>
<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>
解决方案 »
- 新手求一段javascript代码
- 在extjs的RowEditor中如何动态更新其他列的值
- 复选框开关,但选中时显示ID“A001”、“A002”、“A003”`````“B001”“B002”“B003”`````不选时隐藏
- [急]用dojo的ItemFileWriteStore来读入JSON文件时发生错误
- javascript代码不运行
- javascript读取asp cookies出现乱码(急!!!!!!)
- javascript正则表达式
- 有谁知道Server端JavaScript?
- 一个关于open函数的问题
- Dwz局部刷新的使用
- 高手,救命啊!!在線等!
- javascript怎么判断输入的是中文??
<?
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 "不合法";
?>