• 软件测试技术
  • 软件测试博客
  • 软件测试视频
  • 开源软件测试技术
  • 软件测试论坛
  • 软件测试沙龙
  • 软件测试资料下载
  • 软件测试杂志
  • 软件测试人才招聘
    暂时没有公告

字号: 小 中 大 | 推荐给好友 上一篇 | 下一篇

看到有人问如何取中文为2的指定字符串字节数,研究一下:

发布: 2007-6-30 18:56 | 作者: admin | 来源: | 查看: 12次 | 进入软件测试论坛讨论

领测软件测试网 函数:strLeft(str,num)
用途:取指定字符串左边数num个字符,中文作为2个字符出现。
说明:如最后一个汉字取则多,不取则少,则不取,即实际取字符数为num-1个。
      如字符串第一个字符为中文,且num=1,则返回空字符串。
环境:在Win 2K Server + IIS5.0上运行通过,@LANGUAGE=VBSCRIPT

‘’--------------------*****START*****--------------------

FUNCTION strLeft(str,num)

DIM p_str,p_num
    p_str = ""
    p_num = 0    ‘’定义变量,标记中文为2字节时的实际字符数
    
IF TRIM(str)<>"" THEN

    FOR i = 1 TO num

        IF asc(mid(str,i,1))>255 OR ASC(mid(str,i,1))<0 THEN    ‘’判断下一个欲取的字符所占字节数
            p_num = p_num + 2
        Else
            p_num = p_num + 1
        End IF

    IF p_num > num THEN EXIT FOR     
    
    NEXT
    
    p_str = Left(str,i-1)       ‘’把i-1替换为i,则产生与“说明”中相反的情况。

END IF

strLeft=p_str

END FUNCTION

‘’--------------------******END******--------------------

实例:

<%
FUNCTION strLeft(str,num)

DIM p_str,p_num
    p_str = ""
    p_num = 0
    
IF TRIM(str)<>"" THEN

    FOR i = 1 TO num
    
        IF asc(mid(str,i,1))>255 OR ASC(mid(str,i,1))<0 THEN
            p_num = p_num + 2
        Else
            p_num = p_num + 1
        End IF
        
    IF p_num > num THEN EXIT FOR
    
    NEXT

    p_str = Left(str,i-1)
        
END IF

strLeft=p_str

END FUNCTION


aaa = "中华aaaaa人民共和国"

bbb=strLeft(aaa,n)
%>
<%=bbb%>

n值为3时,结果为"中";
n值为7时,结果为"中华aaa";
n值为11时,结果为"中华aaaaa人";
n值为14时,结果为"中华aaaaa人民".

延伸阅读

文章来源于领测软件测试网 https://www.ltesting.net/


关于领测软件测试网 | 领测软件测试网合作伙伴 | 广告服务 | 投稿指南 | 联系我们 | 网站地图 | 友情链接
版权所有(C) 2003-2010 TestAge(领测软件测试网)|领测国际科技(北京)有限公司|软件测试工程师培训网 All Rights Reserved
北京市海淀区中关村南大街9号北京理工科技大厦1402室 京ICP备10010545号-5
技术支持和业务联系:[email protected] 电话:010-51297073

软件测试 | 领测国际 | ISTQB | ISTQB官网 | TMMi | TMMi认证 | 国际软件测试工程师认证 | 领测软件测试网