ASP中怎么判断字符串是否是汉字?
ASP中怎么判断字符串是否是汉字?我是在注册新用户中用到,用len()方法把汉字只算一个字符。...
ASP中怎么判断字符串是否是汉字?我是在注册新用户中用到,用len()方法把汉字只算一个字符。
展开
4个回答
展开全部
一、直接将某字符用asc转为ASCII码,如果是英文,他应该是0-127的范围,而汉字则是一个比较大的数字,所以可以使用以下代码来判断:
if abs(asc(whichChar))>127 then
Response.write whichChar & "是一个汉字"
else
Response.write whichChar & "不是一个汉字"
end if
二、汉字的UNICODE编码范围是4e00-9fa5,所以使用正则表达试就可以判断一个汉字是不是汉字了。
Set RegExpObj=new RegExp
RegExpObj.Pattern="^[\u4e00-\u9fa5]+$"
ReGCheck=RegExpObj.test(whichChar)
Set RegExpObj=nothing
if ReGCheck then
Response.write whichChar & "是汉字"
else
Resposne.write whichChar & "不是汉字"
end if
全为汉字
<SCRIPT LANGUAGE="vbScript">
function isGB(x)
if len(escape(x)) /len(x)=6 then isGB=true else isGB=false
end function
'测试
alert(isGB("汉字"))
alert(isGB("汉 字"))
alert(isGB("汉a字b"))
alert(isGB("汉字!"))
dim test,t1,t2
t1=timer()
for i=1 to 10 * 10000
test=(isGB("汉字!"))
next
t2=timer()
alert(t2-t1)
</SCRIPT>
if abs(asc(whichChar))>127 then
Response.write whichChar & "是一个汉字"
else
Response.write whichChar & "不是一个汉字"
end if
二、汉字的UNICODE编码范围是4e00-9fa5,所以使用正则表达试就可以判断一个汉字是不是汉字了。
Set RegExpObj=new RegExp
RegExpObj.Pattern="^[\u4e00-\u9fa5]+$"
ReGCheck=RegExpObj.test(whichChar)
Set RegExpObj=nothing
if ReGCheck then
Response.write whichChar & "是汉字"
else
Resposne.write whichChar & "不是汉字"
end if
全为汉字
<SCRIPT LANGUAGE="vbScript">
function isGB(x)
if len(escape(x)) /len(x)=6 then isGB=true else isGB=false
end function
'测试
alert(isGB("汉字"))
alert(isGB("汉 字"))
alert(isGB("汉a字b"))
alert(isGB("汉字!"))
dim test,t1,t2
t1=timer()
for i=1 to 10 * 10000
test=(isGB("汉字!"))
next
t2=timer()
alert(t2-t1)
</SCRIPT>
展开全部
一般用ASCII码值来判断
大于127的,就认为是汉字了...
不过,这样的算法不精确....
用长度来算也不精确,因为日语,韩语也是占两个字符的
在此提供一个算实际字符长度的函数
Function reallen(ss)
Dim i, x
i = 0
If ss <> \"\" Then
For x = 1 To Len(ss)
i = i + Len(Hex(Asc(Mid(ss, x, 1)))) / 2 \'是中文就长度加1
Next
End If
reallen = i
end Function
大于127的,就认为是汉字了...
不过,这样的算法不精确....
用长度来算也不精确,因为日语,韩语也是占两个字符的
在此提供一个算实际字符长度的函数
Function reallen(ss)
Dim i, x
i = 0
If ss <> \"\" Then
For x = 1 To Len(ss)
i = i + Len(Hex(Asc(Mid(ss, x, 1)))) / 2 \'是中文就长度加1
Next
End If
reallen = i
end Function
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这段代码写的比较有意思,你看完后应该可以知道判断的方法。
<%
if request.form("name")<>"" then
if Len(Hex(Asc(request.form("name"))))>2 Then
Response.Write "阿里西西说:这个是中国文字!"
else
Response.Write "阿里西西说:这个是什么鸟字呢?"
end if
end if
%>
<form method="post" name="frm" action="">
<INPUT TYPE="text" NAME="name">
<input type="submit" value="提交">
</form>
<%
if request.form("name")<>"" then
if Len(Hex(Asc(request.form("name"))))>2 Then
Response.Write "阿里西西说:这个是中国文字!"
else
Response.Write "阿里西西说:这个是什么鸟字呢?"
end if
end if
%>
<form method="post" name="frm" action="">
<INPUT TYPE="text" NAME="name">
<input type="submit" value="提交">
</form>
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
if abs(asc(whichChar))>127 then
Response.write whichChar & "是一个汉字"
else
Response.write whichChar & "不是一个汉字"
end if
用asc来判断,字符 数字 字母 汉子 都有一个ASC区域!!!
Response.write whichChar & "是一个汉字"
else
Response.write whichChar & "不是一个汉字"
end if
用asc来判断,字符 数字 字母 汉子 都有一个ASC区域!!!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询