28,391
社区成员
发帖
与我相关
我的任务
分享
'从一个字符串中获取指定个数的汉字
Function GetCHWord(str,MaxLength)
Dim re,Result:Result=""
set re=New RegExp'正则对象
re.IgnoreCase=True'忽略大小写
re.Global=True'全局匹配
re.Pattern="([\u4e00-\u9fa5]+)"'里面这个字符串是匹配汉字用的
Set ms=re.Execute(str)'执行匹配
For Each m In ms'便历匹配的项
Result=Result&m.submatches(0)'连接汉字
if len(Result)>=MaxLength then'如果大于获取的的汉字个数时
Result=left(Result,MaxLength)'有可能大于,所以要截取一下
exit for'退出for循环
end if
Next
Set re=Nothing
GetCHWord=Result'设置函数返回值
End Function
Response.write GetCHWord("abcdefg一二三四五六",5)&"<br/>"
Response.write GetCHWord("一二三(abc)四五六(defg)",5)
'我来个不一样的.
Function GetCHWord(str,MaxLength)
Dim re,Result:Result=""
set re=New RegExp
re.IgnoreCase=True
re.Global=True
re.Pattern="([\u4e00-\u9fa5]+)"
Set ms=re.Execute(str)
For Each m In ms
Result=Result&m.submatches(0)
if len(Result)>=MaxLength then
Result=left(Result,MaxLength)
exit for
end if
Next
Set re=Nothing
GetCHWord=Result
End Function
Response.write GetCHWord("abcdefg一二三四五六",5)&"<br/>"
Response.write GetCHWord("一二三(abc)四五六(defg)",5)
Function GetChineseStrByLength(str,length)
If IsNull(str) Or str = "" Then
s = ""
Else
Dim i, n, k, chrA,s
k = 0
n = Len(str)
For i = 1 To n
chrA = Mid(str, i, 1)
If Asc(chrA) < 0 or Asc(chrA) > 255 Then
k = k + 1
s = s & chrA
End If
If k = length Then
Exit For
End If
Next
End If
GetChineseStrByLength = s
End Function
response.Write GetChineseStrByLength("一二三(abc)四五六(defg)",5)