JavaScript:"汉字".length是4还是2,若是2,如何得到4?

netkid 2001-12-18 09:12:18
VBScript可以用LenB("汉字")得到其实际占用的字节数,而JavaScript似乎没有提供类似的函数,大家有何高招?
...全文
205 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
netkid 2001-12-25
  • 打赏
  • 举报
回复
silentlamb(silent):不好意思,分给错了,本来想给呢10分的,现在怎么办呢?
netkid 2001-12-25
  • 打赏
  • 举报
回复
在JavaScript中若用<0判断则结果为14

结贴,给分
netkid 2001-12-25
  • 打赏
  • 举报
回复
<script language="JavaScript">
str = "汉字和english和换行\n";
nLen = str.length;
for(i=0;i<str.length;i++)
if(str.charCodeAt(i)>255)
nLen++;
alert(nLen);
//will show 20 NOT 21
</script>
silentlamb 2001-12-24
  • 打赏
  • 举报
回复
to:deepool(^o^) 
re = /\w¦\s\/g;??通不过吧?
re=/\w|\s/g还差不多
silentlamb 2001-12-24
  • 打赏
  • 举报
回复
julyclyde(Clyde)自己试试吧,vbs中asc返回的是小于0,js中charCodeAt()返回的可都是几万以上的
julyclyde 2001-12-24
  • 打赏
  • 举报
回复
所有程序都有bug,特别是我的……
julyclyde 2001-12-24
  • 打赏
  • 举报
回复
我的失误!
好像vbs和js的数字类型不一样,一个是有符号一个是无符号。内部存储大概是一样的吧?
deepool 2001-12-23
  • 打赏
  • 举报
回复
to julyclyde(Clyde)
发现你挺有意思,你是不是对“所有程序都有bug”很认同!
我想只要漏洞可以忽略就可以了!
deepool 2001-12-23
  • 打赏
  • 举报
回复
下面的函数用来获得长度,方法是先取得长度然后去掉字符,在算一遍长度,两者想加。
如果你要判断的str 包含了标点符号就回多算
你可以改变 re = /\w|\s\/g; 这句话

function ABC_absLen(str){
var abs_l //绝对长度
abs_l = str.length
re = /\w|\s\/g; //把一些其它字符长度多算了一位!
str = str.replace(re,'')
abs_l = abs_l + str.length
return abs_l
}
julyclyde 2001-12-23
  • 打赏
  • 举报
回复
不是>255,应该是<0
silentlamb 2001-12-23
  • 打赏
  • 举报
回复
一个字一个字的判断,如果charcode>255就把长度加2,否则加1
netkid 2001-12-23
  • 打赏
  • 举报
回复
呵呵,不好意思,没找到,请说具体点
julyclyde 2001-12-19
  • 打赏
  • 举报
回复
你知道吗?
lenb("我爱asp")=10

有一个函数,vbs的,在aspcn可以判断汉字和其他的,分别给出长度

87,996

社区成员

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

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