javascript截取字符串小结

本文总结介绍了三种使用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 strstrLength=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.jb51.net';
alert(str.sub(10));
alert(subString(str,10,false));
</script>
</body>
</html> 

以上所述就是本文的所有内容了,希望大家能够喜欢。

(0)

相关推荐

  • JS截取与分割字符串常用技巧总结

    本文实例讲述了JS截取与分割字符串的常用方法.分享给大家供大家参考,具体如下: JS截取字符串可使用 substring()或者slice()   函数:substring() 定义:substring(start,end)表示从start到end之间的字符串,包括start位置的字符但是不包括end位置的字符. 功能:字符串截取,比如想从"MinidxSearchEngine"中得到"Minidx"就要用到substring(0,6) 例子: var src=&q

  • JS截取字符串实例详解

    本文实例讲述了JS截取字符串的方法.分享给大家供大家参考,具体如下: js截取字符串可使用 substring()或者slice()   函数:split() 功能:使用一个指定的分隔符把一个字符串分割存储到数组 例子: str="jpg|bmp|gif|ico|png"; arr=theString.split("|"); //arr是一个包含字符值"jpg"."bmp"."gif"."ico&

  • js 截取或者替换字符串中的数字实现方法

    在js操作表格时,我们经常会需要得到或者修改name中的下标,如:name="cust[1]/custName"; 替换:name.replace(/[\d]+/,num); //num为你需要替换成的数字变量 获取:name.match(/[\d]+/). 获取多个:name.match(/[\d]+/g). 以上这篇js 截取或者替换字符串中的数字实现方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们.

  • JS正则截取两个字符串之间及字符串前后内容的方法

    本文实例讲述了JS正则截取两个字符串之间及字符串前后内容的方法.分享给大家供大家参考,具体如下: 1.js截取两个字符串之间的内容: var str = "aaabbbcccdddeeefff"; str = str.match(/aaa(\S*)fff/)[1]; alert(str);//结果bbbcccdddeee 2.js截取某个字符串前面的内容: var str = "aaabbbcccdddeeefff"; tr = str.match(/(\S*)ff

  • js字符串截取函数slice、substring和substr的比较

    在js中字符截取函数有常用的三个slice().substring().substr()了,下面我来给大家介绍slice().substring().substr()函数在字符截取时的一些用法与区别吧. 取字符串的三个函数:slice(start,[end]),substring(start,[end])和substr(start,[length]) 相关属性: slice() 第一个参数代表开始位置,第二个参数代表结束位置的下一个位置,截取出来的字符串的长度为第二个参数与第一个参数之间的差;若

  • JS基于正则截取替换特定字符之间字符串操作示例

    本文实例讲述了JS基于正则截取替换特定字符之间字符串操作.分享给大家供大家参考,具体如下: 示例1: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"&

  • JS判断字符串字节数并截取长度的方法

    本文实例讲述了JS判断字符串字节数并截取长度的方法.分享给大家供大家参考,具体如下: 这是在项目制作中,积累到的一个东西,感觉效果还可以,现在贴上效果: 那么,在页面上,我们需要检测两个东西,一个就是字节数,一个就是字符数. 由于数据库中,要求title的长度字节数为200,那么具体的js代码如下: /************************************************************************* * CodeBy:SCY CodeDate:20

  • JS使用正则截取两个字符串之间的字符串实现方法详解

    本文实例讲述了JS使用正则截取两个字符串之间的字符串方法.分享给大家供大家参考,具体如下: 一个最常用的场景 截取两个字符串中间的字符串 var str = "iid0000ffr"; var substr = str.match(/id(\S*)ff/); alert(substr2); 你会发现逗号后面是你要的东西 /S*表示多个字符串 为什么想要的东西在逗号后,也就是数组第二个. 是因为match的返回数组,第一个表示匹配的字符串,这里是包括id ff的,结果是id0000ff

  • Js自动截取字符串长度,添加省略号(……)的实现方法

    JavaScript字符串处理函数,根据定义的长度截取字符串,超出部分裁掉追加--,很多时候网页上显示的内容需要缩成"..."该方法用于处理字符串显示固定长度,超长部分用"..."代替: /**参数说明: * 根据长度截取先使用字符串,超长部分追加- * str 对象字符串 * len 目标字节长度 * 返回值: 处理结果字符串 */ function cutString(str, len) { //length属性读出来的汉字长度为1 if(str.length*

  • JS字符串长度判断,超出进行自动截取的实例(支持中文)

    今天一个小弟问我的问题,在文本框中输入字符,如果超出指定长度,就把它截取,要求中文等于两个字符的长度,我找一下资料,把这个功能实现了, 下面是JS代码: <html> <script src="http://jb51.net/script/jquery.js" type="text/javascript"></script> <body> <input type="text" name=&qu

随机推荐