会员
众包
新闻
博问
闪存
赞助商
HarmonyOS
Chat2DB
所有博客
当前博客
我的博客
我的园子
账号设置
会员中心
简洁模式
...
退出登录
注册
登录
Lee's 程序人生
HTML CSS Javascript XML AJAX ATLAS C# C++ 数据结构 软件工程 设计模式 asp.net Java 数字图象处理 Sql 数据库
博客园
::
首页
::
新随笔
::
联系
::
管理
公告
全角半角判断
Posted on
2008-08-19 10:34
analyzer
阅读(
968
) 评论(
0
)
收藏
举报
半角范围:u0000 - u00FF, uFF61 - uFF9F, uFFE8 - uFFEE
全角范围:
全角数字(0-9) uFF10 - uFF19
全角大文字(A-Z): uFF21 - uFF3A
全角小文字(a-z): uFF41 - uFF5A
全角平仮名:u3040 - u309F
全角片仮名:u30A0 - u30FF
全角Latin: uFF01 - uFF5E
全角Symbol: uFFE0 - uFFE5
以下是判断全角半角混合字符串的字节数是否超过指定的字节数。(半角被认为是一个字节)
Code
1
function
isOverBytes(s, maxbytes)
2
{
3
var
i
=
0
;
4
var
bytes
=
0
;
5
var
uFF61
=
parseInt(
"
FF61
"
,
16
);
6
var
uFF9F
=
parseInt(
"
FF9F
"
,
16
);
7
var
uFFE8
=
parseInt(
"
FFE8
"
,
16
);
8
var
uFFEE
=
parseInt(
"
FFEE
"
,
16
);
9
while
(i
<
s.length)
10
{
11
var
c
=
parseInt(s.charCodeAt(i));
12
if
(c
<
256
)
{
13
bytes
=
bytes
+
1
;
14
}
15
else
{
16
if
((uFF61
<=
c)
&&
(c
<=
uFF9F))
{
17
bytes
=
bytes
+
1
;
18
}
else
if
((uFFE8
<=
c)
&&
(c
<=
uFFEE))
{
19
bytes
=
bytes
+
1
;
20
}
21
else
{
22
bytes
=
bytes
+
2
;
23
}
24
}
25
if
(bytes
>
maxbytes)
{
26
return
true
;
27
}
28
i
=
i
+
1
;
29
}
30
return
false
;
31
}
32
刷新页面
返回顶部
博客园
© 2004-2025
浙公网安备 33010602011771号
浙ICP备2021040463号-3