获取字符中中文首字字符

  

复制代码 代码如下:

  <%

  '获取字符中中文首字字符

  '返回:A-Z ;123 ; ###

  Public Function GetSpellChar(str)

  Dim tmp

  GetSpellChar = "@"

  tmp = 65536 + Asc(str)

  If (tmp >= 45217 And tmp <= 45252) Or (tmp = 65601) Or (tmp = 65633) Or (tmp = 37083) Then

  GetSpellChar = "A1"

  ElseIf (tmp >= 45253 And tmp <= 45760) Or (tmp = 65602) Or (tmp = 65634) Or (tmp = 39658) Then

  GetSpellChar = "B1"

  ElseIf (tmp >= 45761 And tmp <= 46317) Or (tmp = 65603) Or (tmp = 65635) Or (tmp = 33405) Then

  GetSpellChar = "C1"

  ElseIf (tmp >= 46318 And tmp <= 46930) Or (tmp = 61884) Or (tmp = 63468) Or (tmp = 65604) Or (tmp >= 36820

  And tmp <= 38524) Or (tmp = 65636) Then

  GetSpellChar = "D1"

  ElseIf (tmp >= 46931 And tmp <= 47009) Or (tmp >= 46827 And tmp <= 46842) Or (tmp = 65605) Or (tmp = 65637)

  Or (tmp = 61513) Then '46827 46833 46842

  GetSpellChar = "E1"

  ElseIf (tmp >= 47010 And tmp <= 47296) Or (tmp = 65606) Or (tmp = 65638) Or (tmp = 61320) Or (tmp = 63568) Or

  (tmp = 36281) Then

  GetSpellChar = "F1"

  ElseIf (tmp >= 47297 And tmp <= 47613) Or (tmp = 65607) Or (tmp = 65639) Or (tmp = 35949) Or (tmp = 36089) Or

  (tmp = 36694) Or (tmp = 34808) Then

  GetSpellChar = "G1"

  ElseIf (tmp >= 47614 And tmp <= 48118) Or (tmp = 59112) Or (tmp = 40296) Or (tmp = 65608) Or (tmp = 65640)

  Then

  GetSpellChar = "H1"

  ElseIf (tmp = 65641) Or (tmp = 65609) Or (tmp = 65641) Then

  GetSpellChar = "I1"

  ElseIf (tmp >= 48119 And tmp <= 49061 And tmp <> 48739) Or (tmp >= 62430 And tmp <= 62430) Or (tmp = 65610)

  Or (tmp = 65642) Or (tmp = 39048) Then

  GetSpellChar = "J1"

  ElseIf (tmp >= 49062 And tmp <= 49323) Or (tmp = 65611) Or (tmp = 65643) Then

  GetSpellChar = "K1"

  ElseIf (tmp >= 49324 And tmp <= 49895) Or (tmp >= 58838 And tmp <= 58838) Or (tmp = 65612) Or (tmp = 65644)

  Or (tmp = 62418) Or (tmp = 48739) Then

  GetSpellChar = "L1"

  ElseIf (tmp >= 49896 And tmp <= 50370) Or (tmp = 63432) Or (tmp = 65613) Or (tmp = 65645) Then

  GetSpellChar = "M1"

  ElseIf (tmp >= 50371 And tmp <= 50613) Or (tmp = 65614) Or (tmp = 65646) Then

  GetSpellChar = "N1"

  ElseIf (tmp >= 50614 And tmp <= 50621) Or (tmp = 65615) Or (tmp = 65615) Or (tmp = 65647) Then

  GetSpellChar = "O1"

  ElseIf (tmp >= 50622 And tmp <= 50905) Or (tmp = 65616) Or (tmp = 65648) Then

  GetSpellChar = "P1"

  ElseIf (tmp >= 50906 And tmp <= 51386) Or (tmp >= 62659 And tmp <= 63172) Or (tmp = 63464) Or (tmp = 63226)

  Or (tmp = 65617) Or (tmp = 65649) Then

  GetSpellChar = "Q1"

  ElseIf (tmp >= 51387 And tmp <= 51445) Or (tmp = 65618) Or (tmp = 65650) Then

  GetSpellChar = "R1"

  ElseIf (tmp >= 51446 And tmp <= 52217) Or (tmp = 65619) Or (tmp = 65651) Or (tmp = 34009) Then

  GetSpellChar = "S1"

  ElseIf (tmp >= 52218 And tmp <= 52697) Or (tmp = 65620) Or (tmp = 65652) Then

  GetSpellChar = "T1"

  ElseIf (tmp = 65621) Or (tmp = 65653) Then

  GetSpellChar = "U1"

  ElseIf (tmp = 65622) Or (tmp = 65654) Then

  GetSpellChar = "V1"

  ElseIf (tmp >= 52698 And tmp <= 52979) Or (tmp = 65623) Or (tmp = 65655) Then

  GetSpellChar = "W1"

  ElseIf (tmp >= 52980 And tmp <= 53688) Or (tmp = 63182) Or (tmp = 65624) Or (tmp = 65656) Then

  GetSpellChar = "X1"

  ElseIf (tmp >= 53689 And tmp <= 54480) Or (tmp = 65625) Or (tmp = 65657) Then

  GetSpellChar = "Y1"

  ElseIf (tmp >= 54481 And tmp <= 62383 And tmp <> 59112 And tmp <> 58838 And tmp <> 57566) Or (tmp = 65626) Or

  (tmp = 65658) Or (tmp = 38395) Or (tmp = 39783) Then

  GetSpellChar = "Z1"

  End If

  If (tmp >= 65601 And tmp <= 65658) Then GetSpellChar = UCase(Left(Trim(str), 1)) '字母

  If (tmp >= 65584 And tmp <= 65593) Then GetSpellChar = "123" '数字

  'Response.Write(tmp)

  End Function

  response.write GetSpellChar("脚")

  response.write GetSpellChar("本")

  response.write GetSpellChar("之")

  %>