JS检测textarea内容字符数,中文按一个字符计

kafly 2006-06-14 09:57:07
我要控制某个textarea里的文字内容不超过65个字符。
但是用length得到的字符数把中文当成了两个字符,而且记数也不太正确



12345678901234567890 记成了22个
中国 记成了4个

----------------------------------------
<script language=javascript>
function duanxin(){
var dxstrs;
dxstrs = fucCheckLength(document.sendsms.neirong.value);

if (dxstrs < 66) {
strs.innerHTML = dxstrs;
}
else
{
alert("如果内容超过65个字将会分两条发送。");
}
}

function fucCheckLength(strTemp)
{
var i,sum;
sum=0;
for(i=0;i<strTemp.length;i++)
{
if ((strTemp.charCodeAt(i)>=0) && (strTemp.charCodeAt(i)<=255))
sum=sum+1;
else
sum=sum+2;
}
return sum;
}
</script>


<BODY>

<form name="sendsms" action="1.asp?action=3" method="post" onSubmit="return CheckForm();">
内  容:<textarea id="neirong" name="neirong" cols="60" rows="4" onkeydown="duanxin();"></textarea> 已输入<span id="strs">0</span>个字符<br>
</form>
</BODY>
...全文
415 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
kafly 2006-06-14
  • 打赏
  • 举报
回复
哦,是哦,晕。。
谢谢,结帖
hbhbhbhbhb1021 2006-06-14
  • 打赏
  • 举报
回复
上面的代码
kafly 2006-06-14
  • 打赏
  • 举报
回复
主要问题是中文的问题。。。。

中文我要算一个字符可以办到不?
hbhbhbhbhb1021 2006-06-14
  • 打赏
  • 举报
回复
事件不对,应该在keyup上,并且length应该是没问题的呀
<script language=javascript>
function duanxin(){
var dxstrs;
dxstrs = fucCheckLength(document.sendsms.neirong.value);

if (dxstrs < 66) {
strs.innerHTML = dxstrs;
}
else
{
alert("如果内容超过65个字将会分两条发送。");
}
}

function fucCheckLength(strTemp)
{
return strTemp.length;
}
</script>


<BODY>

<form name="sendsms" action="1.asp?action=3" method="post" onSubmit="return CheckForm();">
内  容:<textarea id="neirong" name="neirong" cols="60" rows="4" onkeyup="duanxin();"></textarea> 已输入<span id="strs">0</span>个字符<br>
</form>
</BODY>

87,923

社区成员

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

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