asp截取指定英汉混合字符串_支持中文

说明:本函数作用是截取指定英汉混合字符串,并保持显示长度一至。就是将一个汉字当两英文来截取。
用途:一般会用在标题显示列表,可以避免截取的字符串参插不齐的现象。
程序代码


代码如下:

'//A_strString要处理的字符串
'//A_intLen以英文字符数为准
'//A_strAddString如果A_strString有截取字符时添中的后缀,如:...,可以为空
function CutString(byval A_strString,byval A_intLen,byval A_strAddString)
dim MM_objRe,MM_objMs,MM_objMh
dim MM_strCut,MM_intLen
set MM_objRe=new RegExp
MM_objRe.Global=true'全局搜索
MM_objRe.IgnoreCase=true'不区分大小写
MM_objRe.Pattern="[^\x00-\xff]"

MM_intLen=A_intLen
if len(A_strString)<=A_intLen then
MM_strCut=A_strString
else
MM_strCut=left(A_strString,MM_intLen)
set MM_objMs=MM_objRe.execute(MM_strCut)
if MM_objMs.count<>MM_intLen then
for each MM_objMh in MM_objMs
if MM_objMh.FirstIndex<MM_intLen then
MM_intLen=MM_intLen-1
else
exit for
end if
next
else
MM_intLen=MM_intLen/2
end if
MM_strCut=left(A_strString,MM_intLen) & A_strAddString
end if
CutString=MM_strCut
set MM_objRe=nothing
end function

这个和目前网上流行的不太一样,用的是正则式来获取非ANSI字符(这里默认非ANSI字符为汉字,如果有偏差可以修改正则式来达到目的)。先注明一点:函数指定长度以英文字符数为准。即是指定为10,含义为10个英文或5个汉字
作了两点优化:
第一点:直接获取指定长度的字符,因为不管是全汉字还是全英文,最长不过是全英文长度,超过的字符是绝对淘汰字符。
第二点:使用正则寻找范围内的汉字,并只遍历每个汉字的字数,这样可以最大程度上减少循环次数。

(0)

相关推荐

  • asp CutStrX字符串截取函数(过滤全部HTML标记)

    复制代码 代码如下: Function CutStrX(ByVal Str,ByVal StrLen) Dim l,t,c,i,r '过滤全部HTML标记 Set r=New RegExp r.Global=True r.MultiLine=True r.Pattern="(</?[A-Za-z][A-Za-z0-9]*[^>]*>)" str=r.Replace(str," ") Set r=Nothing l=Len(str) t=0 For

  • 用asp实现的截取指定格式字符串的代码

    有段字符串: asdfasdlfajsodf{#kljlkkm#}ojgvjfkdsf{#wdfs#}llsdflksdf  没任何规律的...我要把里面的{#kljlkkm#}和{#wdfs#}查找出来... 1.Split办法:  复制代码 代码如下: <%   Dim I, sCode, aCode, sNewCode   sCode = "asdfasdlfajsodf{#kljlkkm#}ojgvjfkdsf{#wdfs#}llsdflksdf"   aCode = S

  • GetBody asp实现截取字符串的代码

    '================================================== '函数名:GetBody '作  用:截取字符串 '参  数:ConStr ------将要截取的字符串 '参  数:StartStr ------开始字符串 '参  数:OverStr ------结束字符串 '参  数:IncluL ------是否包含StartStr '参  数:IncluR ------是否包含OverStr '============================

  • asp实现截取字符串函数

    如果标题过长,因为页面布局的限制,只能列表10个字符,这个函数会帮你实现的 复制代码 代码如下: '截取字符串 strvalue(标题,字数) function strvalue(str,lennum)     dim p_num     dim i     if strlen(str)<=lennum then         strvalue=str     else         p_num=0         x=0         do while not p_num > lenn

  • asp截取字符串的两种应用 原创

    1.纯粹的截取字符串 复制代码 代码如下: function cutstr(thestr1,strlen) dim l,t,c l=len(thestr1) if l<1 then exit function t=0 for dxy1=1 to l c=Abs(asc(Mid(thestr1,dxy1,1))) if c>255 then t=t+2 else t=t+1 end if if t>=strlen then thev=mid(thestr1,1,dxy1) exit for

  • ASP.NET 字符串截取

    复制代码 代码如下: **//// /// 截取字符串,不限制字符串长度 /// /// 待截取的字符串 /// 每行的长度,多于这个长度自动换行 /// public string CutStr(string str,int len) { string s=""; for(int i=0;i 11 { int r= i% len; int last =(str.Length/len)*len; if (i!=0 && i<=last) { if( r==0) {

  • asp下实现截取字符串特定部分内容函数

    截取字符串特定部分内容函数<% '****************************** '函数:GetKey(HTML,Start,Last) '参数:HTML,待截取的原字符串:tart,截取开始标记:last,截取结束标记 '作者:阿里西西 '日期:2007/7/12 '描述:截取字符串函数,从Start开始截取,到Last为结束 '示例:<%=GetKey("阿里西西,国内最大的WEB开发资源","最大的","资源")%

  • asp 字符串截取函数

    asp 字符串截取函数'********************************************************* '函数:cutStr[str(strlen)] '参数:str,待处理的字符串,strlen,截取的长度 '作者:木木 '日期:2007/7/12 '描述:截取指定长度的字符串 '示例:<%=cutStr("欢迎光临阿里西西",5)%> '*************************************************

  • asp从字符串里截取N个带HTML的字符的函数

    '函数名:getHTMLContent'参数:NO-->要取得的字符数, txtContent-->要处理的字符串  '功能: 从字符串里截取N个带HTML的字符,现在的实现方法还不完善,过程是:从字符串里找各种控件的开始,然后依些分开,放到数组里,然后一个一个数组的加上来看看字符是否大于给定的字符如果是,那么,返回这个数组. '作者:柳永法 '时间:2007-6-1 20:03 :)Function getHTMLContent(NO, txtContent) If Len(txtConte

  • asp截取指定英汉混合字符串_支持中文

    说明:本函数作用是截取指定英汉混合字符串,并保持显示长度一至.就是将一个汉字当两英文来截取. 用途:一般会用在标题显示列表,可以避免截取的字符串参插不齐的现象. 程序代码 复制代码 代码如下: '//A_strString要处理的字符串 '//A_intLen以英文字符数为准 '//A_strAddString如果A_strString有截取字符时添中的后缀,如:...,可以为空 function CutString(byval A_strString,byval A_intLen,byval

  • c++截取汉字和英文混合字符串代码实例

    在C++里截取字符串可以使用string.substr(),可是这个函数只能按英文来截取, 如果是汉字可能就要计算好字符个数,如果是汉字和英文混合,那就只能望洋兴叹了. 可是恰好我需要这样一个函数,于是就自己实现了一个,其中如何判断汉字和英文 参看了此处. 代码简单也无优化,若有更好的方法欢迎提出,代码如下. #include <iostream> #include <string> #include<cstdio> #include<vector> #in

  • mysql 截取指定的两个字符串之间的内容

    如 现有字符串 "[]aseabcd[12345]ddxabcdsx[]",要截取"abcd[" 和 "abcd["之后的第一个 "]" 之间的内容 "12345",当然当中的内容长度不是固定的,可以是"123456" 或者其他字符串. 他问我的时候,我第一反应就是想的indexOf,后来查了下 发现mysql中没有indexOf 而是 locate. 经过半个多小时的尝试,最好帮他实现

  • 截取指定符号之间的字符串(随机读取)delphi实例代码

    复制代码 代码如下: unit Unit1; interface uses  Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,  Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls; type  TForm1 = class(TForm)    test: TMemo;    Button1: TButt

  • PHP针对中英文混合字符串长度判断及截取方法示例

    本文实例讲述了PHP针对中英文混合字符串长度判断及截取方法.分享给大家供大家参考,具体如下: /** * * 中英混合字符串长度判断 * @param unknown_type $str * @param unknown_type $charset */ function strLength($str, $charset = 'utf-8') { if ($charset == 'utf-8') $str = iconv ( 'utf-8', 'gb2312', $str ); $num = s

  • php 截取中英文混合字符串的方法

    php 截取中应为字符串,就不必再用substr或者mb_substr //截取想这样的字符串 a李三 利用ASCII /** * * 中英混合的字符串截取 * @param unknown_type $sourcestr * @param unknown_type $cutlength */ function assoc_substr($sourcestr, $cutlength) { $returnstr = ''; $i = 0; $n = 0; $str_length = strlen

  • Java编程实现中英混合字符串数组按首字母排序的方法

    本文实例讲述了Java编程实现中英混合字符串数组按首字母排序的方法.分享给大家供大家参考,具体如下: 在Java中对于字符串数组的排序,我们可以使用Arrays.sort(String[])方法很便捷的进行排序.例如: String[] arrays = new String[] { "gyu", "sdf", "zf", "大同", "收到", "地方", "三等分"

  • JavaScript截取指定长度字符串点击可以展开全部代码

    文章的篇幅往往不是那么恰到好处,如果以原有的篇幅展示,那么有可能会影响网页的布局或者美观度,这个时候就要根据情况适量截取一定的字符串,以适应布局,不过当点击一个按钮的时候依然可以展开全部的内容,下面就通过一个实例详细介绍一下如何实现此效果,代码示例如下: <!DOCTYPE html> <html> <head> <meta charset=" utf-8"> <meta name="author" conten

  • jQuery截取指定长度字符串的实现原理及代码

    截取指定长度字符串操作在网站建设中大量使用,尤其是在新闻列表这种类型的操作中大量应用. 下面就是一个截取字符串代码实例: <!DOCTYPE HTML> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <meta name="author" content="htt

  • php截取指定2个字符之间字符串的方法

    本文实例讲述了php截取指定2个字符之间字符串的方法.分享给大家供大家参考.具体如下: 在php中只要判断字符串1与字符串2之前的一个stripos位置然后再使用substr开始截取就可以了,这里给大家介绍一个简单例子. 使用方法: $keyword='查找(计组实验)' $need=getNeedBetween($keyword, '(' , ')' ); 运行该程序之后: $need='计组实验'; 下面就来完成上面用到的字符串截取函数getNeedBetween.该函数可实现简单的从字符串

随机推荐