• 3U娱乐城可信吗 2018-07-22
  • “智能之光”照进津门大地——天津加快建设智能科技产业发展新高地 2018-07-22
  • China party system sets an example 2018-07-22
  • 荔枝跨年“全能女王”刘涛登台献唱(组图) 2018-07-22
  • 安徽省十二届人大代表议案建议全部办结 2018-07-22
  • 清明假期还没过,五一火车票已开售,你抢票了没? 2018-07-21
  • 江城元宵细雨 观灯注意安全 2018-07-21
  • 杠杆资本弃壳退场 汇垠系让渡两公司控股权 2018-07-21
  • 12月12日活动爆料丨剁剁剁剁什么手,这次绝不让你吃土! 2018-07-20
  • 美国创新力排名跌出前十 韩国和瑞典蝉联前两名 2018-07-20
  • 讲述真人版“红海行动” 引孙杨现场动容 2018-07-20
  • 太阳城娱乐城网伟易博 2018-07-19
  • 先重组转型后变无主 帝龙文化实控人退位被"翻旧账" 2018-07-19
  • 线下数据大揭秘:南京女孩的钱都花哪儿了? 2018-07-19
  • 寒冷时节 咋防流感教你三招抵御感冒 2018-07-19
  • javascript实现截取字符串功能总结(包括使用Js截取中文字符的介绍)

    栏目: 编程语言 发布于: 2014-05-09 08:21:03

    本文总结介绍了三种使用Javascript截取字符串的方法,同时也总结了两种截取中文字符串的办法,分享一下。

    1.substring 方法

    定义和用法
    substring 方法用于提取字符串中介于两个指定下标之间的字符。
    语法
    stringObject.substring(start,stop)
    参数 描述
    start 必需。一个非负的整数,规定要提取的子串的第一个字符在 stringObject 中的位置。
    stop 可选。一个非负的整数,比要提取的子串的最后一个字符在 stringObject 中的位置多 1。如果省略该参数,那么返回的子串会一直到字符串的结尾。
    返回值
    一个新的字符串,该字符串值包含 stringObject 的一个子字符串,其内容是从 start 处到 stop-1 处的所有字符,其长度为 stop 减 start。
    说明
    substring 方法返回的子串包括 start 处的字符,但不包括 end 处的字符。
    如果 start 与 end 相等,那么该方法返回的就是一个空串(即长度为 0 的字符串)。
    如果 start 比 end 大,那么该方法在提取子串之前会先交换这两个参数。
    如果 start 或 end 为负数,那么它将被替换为 0。
    具体使用案例:

    var str = "0123456789"; 
    alert(str.substring(0));------------"0123456789" 
    alert(str.substring(5));------------"56789" 
    alert(str.substring(10));-----------"" 
    alert(str.substring(12));-----------"" 
    alert(str.substring(-5));-----------"0123456789" 
    alert(str.substring(-10));----------"0123456789" 
    alert(str.substring(-12));----------"0123456789" 
    alert(str.substring(0,5));----------"01234" 
    alert(str.substring(0,10));---------"0123456789" 
    alert(str.substring(0,12));---------"0123456789" 
    alert(str.substring(2,0));----------"01" 
    alert(str.substring(2,2));----------"" 
    alert(str.substring(2,5));----------"234" 
    alert(str.substring(2,12));---------"23456789" 
    alert(str.substring(2,-2));---------"01" 
    alert(str.substring(-1,5));---------"01234" 
    alert(str.substring(-1,-5));--------"" 

    2.substr 方法

    定义和用法
    substr 方法用于返回一个从指定位置开始的指定长度的子字符串。
    语法
    stringObject.substr(start [, length ])
    参数 描述
    start 必需。所需的子字符串的起始位置。字符串中的第一个字符的索引为 0。
    length 可选。在返回的子字符串中应包括的字符个数。
    说明
    如果 length 为 0 或负数,将返回一个空字符串。
    如果没有指定该参数,则子字符串将延续到stringObject的最后。
    具体使用案例:

    var str = "0123456789"; 
    alert(str.substr(0));---------------"0123456789" 
    alert(str.substr(5));---------------"56789" 
    alert(str.substr(10));--------------"" 
    alert(str.substr(12));--------------"" 
    alert(str.substr(-5));--------------"0123456789" 
    alert(str.substr(-10));-------------"0123456789" 
    alert(str.substr(-12));-------------"0123456789" 
    alert(str.substr(0,5));-------------"01234" 
    alert(str.substr(0,10));------------"0123456789" 
    alert(str.substr(0,12));------------"0123456789" 
    alert(str.substr(2,0));-------------"" 
    alert(str.substr(2,2));-------------"23" 
    alert(str.substr(2,5));-------------"23456" 
    alert(str.substr(2,12));------------"23456789" 
    alert(str.substr(2,-2));------------"" 
    alert(str.substr(-1,5));------------"01234" 
    alert(str.substr(-1,-5));-----------""

    3.自定义方法

    以上两种方法只可以对英文和数字进行截取,遇到中文便无可奈何了,强制使用会导致出现乱码的情况,经本人认证研究终于总结出了两种能够使用Javascript截取字符串中包含中文的方法:

    第一种方法:

    String.prototype.sub=function(n){
    	var r=/[^\x00-\xff]/g;
    	if(this.replace(r,"mm").length<=n){return this;}
    	var m=Math.floor(n/2);
    	for(var i=m;i<this.length;i++){
    		if(this.substr(0,i).replace(r,"mm").length>=n){
    			return this.substr(0,i)+"...";
    		}
    	}
    	return this;
    }

    第二种方法:

    //截取字符串 包含中文处理,参数含义:(字符串,截取长度,是否增加...) 
    function subString(str, len, hasDot){
    	var newLength=0;
    	var newStr="";
    	var chineseRegex=/[^\x00-\xff]/g;
    	var singleChar='';
    	var strLength=str.replace(chineseRegex,'**').length;
    	for(var i=0;i < strLength;i++){ 
    	singleChar=str.charAt(i).toString();
    	if(singleChar.match(chineseRegex) != null){ 
    		newLength+=2;
    	}else{ 
    		newLength++;
    	} 
    	if(newLength>len){ 
    		break;
    	} 
    	newStr+=singleChar;
    	} 
    	
    	if(hasDot && strLength>len){ 
    		newStr+='...';
    	} 
    	return newStr;
    }

    以上使用Js截取中文字符串的具体使用方法如下:

    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>Javascript字符串截取处理总结(Js截取中文字符串总结)</title>
    <script language="javascript">
    String.prototype.sub=function(n){var r=/[^\x00-\xff]/g;if(this.replace(r,"mm").length<=n){return this}var m=Math.floor(n/2);for(var i=m;i<this.length;i++){if(this.substr(0,i).replace(r,"mm").length>=n){return this.substr(0,i)+"..."}}return this};
    function subString(str,len,hasDot){var newLength=0;var newStr="";var chineseRegex=/[^\x00-\xff]/g;var singleChar='';var strLength=str.replace(chineseRegex,'**').length;for(var i=0;i<strLength;i++){singleChar=str.charAt(i).toString();if(singleChar.match(chineseRegex)!=null){newLength+=2}else{newLength++}if(newLength>len){break}newStr+=singleChar}if(hasDot&&strLength>len){newStr+='...'}return newStr}
    </script>
    </head>
    <body>
    <script language="javascript">
    var str='我爱www.phpernote.com';
    alert(str.sub(10));
    alert(subString(str,10,false));
    </script>
    </body>
    </html>

    您可能感兴趣的文章

    • js限制只能输入英文字母和数字,不能输入中文和其他特殊字符的办法
    • Mysql查询带单引号字符串及插入带单引号字符串需要注意问题
    • php判断字符串是否全英文,纯中文,中英文组合的方法
    • CSS截取字符串自动补充省略号
    • js如何将返回的字符串转换为json格式的数据
    • js 限制文本框只能输入数字(包括小数点数字)
    • php提取字符串中的数字
    • js数组转字符串,js字符串转数组的方法总结
    本站文章除注明转载外,均为本站原创或编译?;队魏涡问降淖?,但请务必注明出处。
    转载请注明:文章转载自 七星彩票平台
    本文标题:javascript实现截取字符串功能总结(包括使用Js截取中文字符的介绍)
    IT技术书籍推荐:
    Java编程思想(第4版)
    Java编程思想(第4版)
    埃史尔 (作者), 陈昊鹏 (译者)
    《Java编程思想(第4版)》书共22章,包括操作符、控制执行流程、访问权限控制、复用类、多态、接口、通过异常处理错误、字符串、泛型、数组、容器深入研究、Iava’UO系统、枚举类型、并发以及图形化用户界面等内容。这些丰富的内容,包含了Java语言基础语法以及高级特性,适合各个层次的Java程序员阅读,同时也是高等院校讲授面向对象程序设计语言以及Java语言的绝佳教材和参考书。 从《Java编程思想(第4版)》一书获得的各项大奖以及来自世界各地的读者评论中,不难看出这是一本经典之作。本书的作者拥有多年教学经验,对c、c++以及Java语言都有独到、深入的见解,以通俗易懂及小而直接的示例解释了一个个晦涩抽象的概念。