Javascript 中英文字符串截取

 1 /**
 2   * 中英文字符串截取
 3   * @param str  要截取的字符串
 4   * @param len  要截取的长度
 5   * @param hasDot 是否在字符串末尾增加‘...‘
 6   * @returns {string}
 7   *
 8   */
 9
10 function mySubString (str, len, hasDot){
11         var newLength = 0;
12         var newStr = "";
13         var chineseRegex = /[^\x00-\xff]/g;
14         var singleChar = "";
15         var strLength = str.replace(chineseRegex,"**").length;
16         for(var i = 0;i < strLength;i++)     {
17           singleChar = str.charAt(i).toString();
18           if(singleChar.match(chineseRegex) != null) {
19             newLength += 2;
20           }else {
21             newLength++;
22           }
23           if(newLength > len) {
24             break;
25           }
26           newStr += singleChar;
27         }
28         if(hasDot && strLength > len) {
29           newStr += "...";
30         }
31         return newStr;
32     }

举个例子,假如需要最多保留24个字符(中文算两个,英文算一个)

$(‘#inupt‘).on(‘keyup‘,function(){
    var newValue = $(this).val();
    var textLength = 0;
    var subStr;

    for (var i = 0; i < newValue.length; i++) {
      if (newValue.charAt(i).match(/[\u0391-\uFFE5]/)) {
        textLength += 2;
      } else {
        textLength++;
      }
    };

    if (textLength>24){
        subStr = mySubString(newValue,24);
        $(this).val(subStr);
    }

})
时间: 2024-07-30 10:19:40

Javascript 中英文字符串截取的相关文章

JavaScript中英文 字符串截取

/** * 中英文字符串截取 * @param str 要截取的字符串 * @param len 要截取的长度 * @param hasDot 是否在字符串末尾增加'...' * @returns {string} * */ function mySubString (str, len, hasDot){ var newLength = 0; var newStr = ""; var chineseRegex = /[^\x00-\xff]/g; var singleChar = &q

中英文字符串截取类

<?php /** * description:中英文字符串截取 * @author :SunsCheung * @date:2015-09-24 */ class Helper{ public static function truncate_utf8_string($string, $length, $etc = '...') { $result = ''; $string = html_entity_decode(trim(strip_tags($string)), ENT_QUOTES,

JavaScript中字符串截取substring/substr/slice方法总结

最近整前台总多多少少遇到一些字符串截取的小问题,忍不住仔细看了下.接下来总结一下javascript中字符串截取方法的一些应用经验和区别.看了其他博主也有写到,各有风格况且只是个人随记,自己体会的才最深刻. 一些看似简单深究又大有文章的东西弄懂了你才知道自己所学甚浅,部分内容是w3cSchool原文,然后增加了自己的总结和见解.看完有兴趣的也可以去官网查看. 以下为总结: var str = "0123456789"; //此字符串为上下文举例用 一.stringObject.subs

记录这一路上的坎坷--JavaScript之字符串截取

最近在项目中想尽量少用jquery,多用原生JavaScript以便更好的提高.问题就出在一个简单的index提取.这个index我是通过元素的类名来获取,因此使用element.className.substr(-1,1). 这看似没有问题,不过在ie8及之前的ie版本,获取到的却是类名的第一个字符.这便是substr存在的兼容性问题. 在此总结下关于字符串截取的相关方法(参考http://www.w3school.com.cn/): string.substr(start,length) 返

前端学习笔记之九——原生JavaScript实现字符串截取

作业题目如下: ---------------------------------------------------------------- 字符串截取的方法有slice(start,end+1),substring(start,end+1),substr(start,n).他们之间在用法方面也有一些相同或不同. slice(start,end+1):两个参数时,参数指截取位置,截取含头不含尾:一个参数时,默认截取到字符串结尾.参数可以为负数,负数就倒着数位置. substring(star

utf-8 中英文字符串截取

http://www.nowamagic.net/php/php_SubMixedString.php http://waiting.iteye.com/blog/581888 function get_word($string, $length, $dot = '..',$charset='gbk') {          if(strlen($string) <= $length) {         return $string;     }     $string = str_repla

JavaScript substr() 字符串截取函数使用详解

substr 定义和用法 substr() 方法可在字符串中抽取从 start 下标开始的指定数目的字符. 语法 stringObject.substr(start,length) 如果 length 为 0 或负数,将返回一个空字符串.如果没有指定该参数,则子字符串将延续到 stringvar 的最后. 示例 下面的示例演示了substr 方法的用法. 1.截取字符串第一个字符. <script type="text/javascript"> var str="

php 中英文字符串截取,字符串长度

在做PHP开发的时候,由于我国的语言环境问题,所以我们常常需要对中文进行处理.在PHP中,我们都知道有专门的mb_substr和mb_strlen函数,可以对中文进行截取和计算长度,但是,由于这些函数并非PHP的核心函数,所以,它们常常有可能没有开启.当然,如果是用的自己的服务器,则只要在php.ini中开启即可.如果是用的虚拟主机,而服务器又没有开启这方面的函数的话,那就需要我们自己写出点适合咱国情的函数来了. 以下几个函数用起来颇为顺手的.不过要知道,得在utf-8环境下使用. ? 1 2

javascript中字符串截取的两种方法

var testStr = "hello kay!"; 1.substr testStr.substr(1)   ->ello kay! testStr.substr(1,4) ->ello (4是长度) 2.substring testStr.substring(1)   ->ello kay! testStr.substr(1,4) ->ello(4是第4个字符)