/*** 中英数字混合的字符串截取* Param: 参数说明* 【in】$sourcestr string  截取字符串* 【in】$cutlength int  截取长度*/public function assoc_substr($sourcestr, $cutlength) {$returnstr = '';$i = 0;$n = 0;$str_length = strlen ( $sourcestr ); //字符串的字节数while ( ($n < $cutlength) and ($i <= $str_length) ) {$temp_str = substr ( $sourcestr, $i, 1 );$ascnum = Ord ( $temp_str ); //得到字符串中第$i位字符的ascii码if ($ascnum >= 224) {//如果ASCII位高与224,$returnstr = $returnstr . substr ( $sourcestr, $i, 3 ); //根据UTF-8编码规范,将3个连续的字符计为单个字符$i = $i + 3; //实际Byte计为3$n ++; //字串长度计1} elseif ($ascnum >= 192){ //如果ASCII位高与192,$returnstr = $returnstr . substr ( $sourcestr, $i, 2 ); //根据UTF-8编码规范,将2个连续的字符计为单个字符$i = $i + 2; //实际Byte计为2$n ++; //字串长度计1} elseif ($ascnum >= 65 && $ascnum <= 90) {//如果是大写字母,$returnstr = $returnstr . substr ( $sourcestr, $i, 1 );$i = $i + 1; //实际的Byte数仍计1个$n ++; //但考虑整体美观,大写字母计成一个高位字符}elseif ($ascnum >= 97 && $ascnum <= 122) {$returnstr = $returnstr . substr ( $sourcestr, $i, 1 );$i = $i + 1; //实际的Byte数仍计1个$n ++; //但考虑整体美观,大写字母计成一个高位字符}elseif($ascnum>=48 && $ascnum<=57){$returnstr = $returnstr . substr ( $sourcestr, $i, 1 );$n ++; //但考虑整体美观,大写字母计成一个高位字符}else {//其他情况下,半角标点符号,$returnstr = $returnstr . substr ( $sourcestr, $i, 1 );$i = $i + 1;$n = $n + 0.5;}}return $returnstr;}

转载于:https://www.cnblogs.com/zwtqf/p/10750719.html

中英数字混合的字符串截取相关推荐

  1. Mysql截取中英数混合的字符串

    在 mysql中截取字符串我们用 LEFT函数 LEFT(str,len) 返回从字符串str 开始的len 最左字符. mysql> SELECT LEFT('foobarbar', 5); ...

  2. php把数字转化字符串,php中把数字转化为字符串的方法有哪些?-PHP问题

    php中把数字转化为字符串的办法有哪些? php中把数字转化为字符串的办法: PHP的数据类型转换属于强迫转换,转换类型为(string):转换成字符串 转换形式: intval() floatval ...

  3. wpf 切换搜狗输入法英文_搜狗输入法全新升级手写功能,中英数字自由写,告别切换丨本周新闻...

    搜狗AI合成主播雅妮 为您带来搜狗本周新闻播报 新 闻 原 文 .01. 2019搜狗全年营收超80亿人民币,创历史新高 近期,搜狗公布了2019年第四季度及全年未经审计的财务报告.财报显示,2019 ...

  4. C++处理 中英字混合截断乱码[中码GBK,英码ASCII]

    //=======================================================// 从start开始 截取中英混合字符 遵循GBK编码规则////========= ...

  5. java 保留字符串中的数字_java从字符串中提取数字

    随便给你一个含有数字的字符串,比如: String s="eert343dfg56756dtry66fggg89dfgf"; 那我们如何把其中的数字提取出来呢?大致有以下几种方法, ...

  6. 关于中英数字混排的字符串分割问题(转)

    要用到短信平台的缘故,短信每条又有字数的限制,而短信平台的服务端又不会自己分析. 短信平台的后台会自己分割,但api却有没这个功能. 在网上找了一点时间,发现都不怎样. 后来就自己想了个办法,算是原创 ...

  7. java字符串包含连续数字,Java中包含数字的排序字符串

    小编典典 尝试使用此比较器,该比较器将删除所有非数字字符,然后将其余字符与数字进行比较: Collections.sort(strings, new Comparator() { public int ...

  8. php 在字符串中 找数字,php提取字符串中的数字

    第一种方法: function findNum($str=''){ $str=trim($str); if(empty($str)){return '';} $reg='/(\d{3}(\.\d+)? ...

  9. mysql截取字符串中的部分内容_Mysql字符串截取及获取指定字符串中的数据

    {"moduleinfo":{"card_count":[{"count_phone":1,"count":1}],&q ...

最新文章

  1. CAMB, CosmoMC的安装和使用
  2. 标题栏上显示页面上的鼠标坐标
  3. 转:J2SE5中的最新注释功能SuppressWarnings
  4. SVM分类算法的基本理论问题
  5. vissim跟驰模型_MATLAB——基于元胞自动机的单向3车道模型
  6. 循环神经网络_小孩都看得懂的循环神经网络
  7. paip.java 线程无限wait的解决
  8. 3dmax 2022卸载方法,怎么完全彻底卸载删除清理干净3dmax 2022各种残留注册表和文件?
  9. [线性模型总结] 线性回归+方差分析+协方差分析+混合效应+面板数据模型
  10. 分布式系统故障容灾治理总结
  11. Adobe Spark试用手记
  12. imshow显示图像为纯白或者纯黑或者为杂点(noise)原因分析(下篇)
  13. 记录在处理SIF数据中,遇到的一些问题及解决过程
  14. 小甲鱼零基础入门python教程视频_小银 - 神奇宝贝百科,关于宝可梦的百科全书...
  15. 串级PID的一些理解
  16. IOS UIView 01-View开始深入 绘制像素到屏幕上
  17. 微信蓝牙设备连接不上原因总结(5)
  18. wxParse 安装和使用,以及a标签跳转功能
  19. Android初级教程IP拨号器初识广播接受者
  20. c#开发Edge插件

热门文章

  1. ATPCS和AAPCS
  2. XCTF-Reverse:insanity
  3. BugkuCTF-Misc:telnet
  4. SpringBoot 配置绑定
  5. 2.shiro工作原理(以集成springboot为例)
  6. STM32开发 -- 地球坐标系(WGS84),火星坐标系(GCJ02), 百度坐标系(BD09)坐标转换
  7. MPU6050开发 -- 卡尔曼滤波
  8. 【译】Secure Computations as Dataflow Programs Implementing the SPDZ Protocol using TensorFlow
  9. 连接不同区块链的跨链技术介绍
  10. Android 5.1 SystemServer SystemService 各个系统Manager