• Reciprocity key to denuclearization process 2018-10-24
  • 拥有7.2亿美元比特币大金主突然苏醒 数字货币“吓跌” 2018-10-24
  • ::紫光阁::中共中央国家机关工作委员会 2018-10-23
  • 3名中国游客在瑞典遭粗暴对待 外交部敦促瑞方重视中方关切 2018-10-21
  • 国足20-0大胜!女梅西6球,女C罗轰5球,男足才赢19-0 2018-10-21
  • 消协提醒:春节预订酒店有技巧 预付卡消费需谨慎 2018-10-20
  • 陈敏尔唐良智会见传化集团董事长徐冠巨 2018-10-20
  • 扫黑除恶利剑高悬 前8月榕查处违法采砂案件93起 2018-10-20
  • 不能让所谓的收视率愚弄观众 2018-10-18
  • 新希望!中超19岁新星半年增重十斤 曾戏耍恒大两国脚 2018-10-17
  • 迎丰收 晒丰收 庆丰收 2018-10-15
  • “捂脸表情”被注册成商标?申请人不认为商标侵权 2018-10-15
  • 战巡南海、绕岛巡航…空军有“飞出去”的主心骨 2018-10-14
  • 幼儿园要求家长写一万字读后感:不能这样玩家长|幼儿园|家长-教育时讯 2018-10-13
  • 中国故宫文物展在希腊举行 2018-10-13
  • 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语言都有独到、深入的见解,以通俗易懂及小而直接的示例解释了一个个晦涩抽象的概念。