首页 > 开发 > 综合 > 正文

left() 函数是 VBScript 的函数,VBScript 将1个汉字看作1个字符,因此用 l

2024-07-21 02:25:04
字体:
来源:转载
供稿:网友
left() 函数是 vbscript 的函数,vbscript 将1个汉字看作1个字符,因此用 left()不能得到正确的字符长度。

我自己编写了如下3个函数,用来取代 len()、left()、right(),希望能解决您的问题。

'--------------------------------------------------------
'name:        lenx
'argument:        ustr
'return:
'description:    返回字符串的长度,1个中文字符长度为2
'--------------------------------------------------------

function lenx(byval ustr)
    dim thelen,x,testustr
    thelen = 0

    for x = 1 to len(ustr)
        testustr = mid(ustr,x,1)
        if asc(testustr) < 0 then
            thelen = thelen + 2
        else
            thelen = thelen + 1
        end if
    next
    lenx = thelen
end function

'--------------------------------------------------------
'name:        leftx
'argument:        ustr        待处理的字符串
'        ulen        要截取的长度
'return:
'description:    返回指定长度的字符串,1个中文字符长度为2
'--------------------------------------------------------

function leftx(byval ustr,byval ulen)
    dim i,j,uteststr,thestr

    leftx = ""
    j = 0

    for i = 1 to len(ustr)
        uteststr= mid(ustr,i,1)
        thestr    = thestr & uteststr
        if asc(uteststr) < 0 then
            j = j + 2
        else
            j = j + 1
        end if
        if j >= ulen then exit for
    next
    leftx = thestr
end function

'--------------------------------------------------------
'name:        rightx
'argument:        ustr        待处理的字符串
'        ulen        要截取的长度
'return:
'description:    返回指定长度的字符串,1个中文字符长度为2
'--------------------------------------------------------

function rightx(byval ustr,byval ulen)
    dim i,j,uteststr

    rightx = ""
    j = 0

    for i = len(ustr) to 1 step -1
        uteststr = mid(ustr,i,1)
        rightx = rightx & uteststr
        if asc(uteststr) < 0 then
            j = j + 2
        else
            j = j + 1
        end if
        if j >= ulen then exit for
    next
end function

菜鸟学堂:
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表