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个汉字
作了两点优化:
第一点:直接获取指定长度的字符,因为不管是全汉字还是全英文,最长不过是全英文长度,超过的字符是绝对淘汰字符。
第二点:使用正则寻找范围内的汉字,并只遍历每个汉字的字数,这样可以最大程度上减少循环次数。
相关推荐
-
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) {
-
GetBody asp实现截取字符串的代码
'================================================== '函数名:GetBody '作 用:截取字符串 '参 数:ConStr ------将要截取的字符串 '参 数:StartStr ------开始字符串 '参 数:OverStr ------结束字符串 '参 数:IncluL ------是否包含StartStr '参 数:IncluR ------是否包含OverStr '============================
-
asp下实现截取字符串特定部分内容函数
截取字符串特定部分内容函数<% '****************************** '函数:GetKey(HTML,Start,Last) '参数:HTML,待截取的原字符串:tart,截取开始标记:last,截取结束标记 '作者:阿里西西 '日期:2007/7/12 '描述:截取字符串函数,从Start开始截取,到Last为结束 '示例:<%=GetKey("阿里西西,国内最大的WEB开发资源","最大的","资源")%
-
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
-
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实现截取字符串函数
如果标题过长,因为页面布局的限制,只能列表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从字符串里截取N个带HTML的字符的函数
'函数名:getHTMLContent'参数:NO-->要取得的字符数, txtContent-->要处理的字符串 '功能: 从字符串里截取N个带HTML的字符,现在的实现方法还不完善,过程是:从字符串里找各种控件的开始,然后依些分开,放到数组里,然后一个一个数组的加上来看看字符是否大于给定的字符如果是,那么,返回这个数组. '作者:柳永法 '时间:2007-6-1 20:03 :)Function getHTMLContent(NO, txtContent) If Len(txtConte
-
asp 字符串截取函数
asp 字符串截取函数'********************************************************* '函数:cutStr[str(strlen)] '参数:str,待处理的字符串,strlen,截取的长度 '作者:木木 '日期:2007/7/12 '描述:截取指定长度的字符串 '示例:<%=cutStr("欢迎光临阿里西西",5)%> '*************************************************
-
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.该函数可实现简单的从字符串
随机推荐
- 正则表达式限制 账号 密码 邮箱 身份证 手机号的相关代码
- 深入探究AngularJs之$scope对象(作用域)
- 值得Java开发者关注的7款新工具
- Mybatis批量删除多表
- 不要在cookie中使用特殊字符的原因分析
- jQuery Masonry瀑布流插件使用详解
- JavaScript中的History历史对象
- PHP实现清除MySQL死连接的方法
- android图像绘制(三)画布刷屏问题记录
- 在Yii2中使用Pjax导致Yii2内联脚本载入失败的原因分析
- MySQL 4G内存服务器配置优化
- Android仿QQ微信侧滑删除效果
- JSP实现添加功能和分页显示实例分析
- 数据库复制性能测试 推送模式性能测试
- 浅谈window.onbeforeunload() 事件调用ajax
- jquery操作select元素和option的实例代码
- 获取table中的rowIndex和cellIndex
- JavaScript setTimeout使用闭包功能实现定时打印数值
- Windows 不能让您登录,因为不能加载您的配置文件 详细信息 - 拒绝访问
- 详解Java实现负载均衡的几种算法代码