asp编程中,对中文、英文、数字混合的字符串,怎么计算它的长度,要求一个中文按照两个英文计算
在网上找了扩展len的函数,对于中文和数字的结合,计算得都不准确,找了半天没有找到合适的东西。
有没有朋友能提供这样一个函数
比如 “中国” 结果是2
“中国人ok” 结果是8
“美国911”,结果是7
这样的,无论中英文还有数字怎么排,都能出这样的结果。
50分求助,请帮忙给个解决方法。
追问:关于中国的那个是我写错了,需要的就是这类型的, “中国” 最终测试是4 这是我需要的
但是我运行这个之后,出来第一个还行,后来的就不行了
response.write strlen("中国")
response.write "<br><br>"
response.write strlen("中国ren")
response.write "<br><br>"
response.write strlen("中国ok")
response.write "<br><br>"难道是我这里操作系统问题,很奇怪,算了,采纳了
答案:你要的这种没有,一个汉字就是两个字节,英文和数字就是1个字节。我给你一个按照字节数来计算结果的:
'==========================='
'函数名:Strlen
'作 用:截取长度,一个汉字算两个。
'Str---传递的字符串;
'返回值:长度
'==========================='
Function strlen(str)
If str = "" then
strlen = ""
Exit Function
End If
str = Replace(str,"<","<")
str = Replace(str,">",">")
str = Replace(str," "," ")
str = Replace(str,""",Chr(34))
str = Replace(str,"'",Chr(39))
str = Replace(str,"—","—")
str = Replace(str,"“","“")
str = Replace(str,"”","”")
l = Len(str)
t = 0
For q = 1 To l
c = Abs(Asc(Mid(str,q,1)))
If c>255 then
t = t+2
Else
t = t+1
End If
Next
strlen = t
End Function
比如:
中国人ok 结果是8
美国911 结果是7
但是:中国 结果是4
上一个:asp.net怎么连接数据库SQL2000
下一个:ASP.NET网站中如何用fupFile控件上传文件到相对路径?