1. 程式人生 > >js字串擷取函式slice()、substring()、substr()

js字串擷取函式slice()、substring()、substr()

在js中字元擷取函式有常用的三個slice()、substring()、substr()了,下面我來給大家介紹slice()、substring()、substr()函式在字元擷取時的一些用法與區別吧。

取字串的三個函式:slice(start,[end]),substring(start,[end])和substr(start,[length])
相關屬性:

slice()
第一個引數代表開始位置,第二個引數代表結束位置的下一個位置,截取出來的字串的長度為第二個引數與第一個引數之間的差;若引數值為負數,則將該值加上字串長度後轉為正值;若第一個引數等於大於第二個引數,則返回空字串.

substring()
第一個引數代表開始位置,第二個引數代表結束位置的下一個位置;若引數值為負數,則將該值轉為0;兩個引數中,取較小值作為開始位置,截取出來的字串的長度為較大值與較小值之間的差.

substr()
第一個引數代表開始位置,第二個引數代表擷取的長度

PS:字串都從0開始計起

例子:

<script type="text/javascript">
      var stmp = "rcinn.cn";
      //使用一個引數
      alert(stmp.slice(3));//從第4個字元開始,擷取到最後個字元;返回"nn.cn"
      alert(stmp.substring(3));//從第4個字元開始,擷取到最後個字元;返回"nn.cn"

      //使用兩個引數
      alert(stmp.slice(1,5))//從第2個字元開始,到第5個字元;返回"cinn"
      alert(stmp.substring(1,5));//從第2個字元開始,到第5個字元;返回"cinn"

      //如果只用一個引數並且為0的話,那麼返回整個引數
      alert(stmp.slice(0));//返回整個字串
      alert(stmp.substring(0));//返回整個字串

      //返回第一個字元

      alert(stmp.slice(0,1));//返回"r"
      alert(stmp.substring(0,1));//返回"r"

      //在上面的例子中我們可以看出slice()和substring()的用法是相同的
      //返回的值也是一樣的,但當引數為負數時,他們的返回值卻不一樣,看下面的例子
      alert(stmp.slice(2,-5));//返回"i"
      alert(stmp.substring(2,-5));//返回"rc"
      //從上面兩個例子可以看出slice(2,-5)實際上是slice(2,3)
      //負5加上字串長度8轉換成正3(若第一位數字等於或大於第二位數字,則返回空字串);
      //而substring(2,-5)實際上是substring(2,0),負數轉換為0,substring總是把較小的數作為起始位置。

      alert(stmp.substring(1,5))//從第2個字元開始,到第5個字元;返回"cinn"
      alert(stmp.substr(1,5));//從第2個字元開始,擷取5個字元;返回"cinn."

</script>

substr 和 substring方法的區別

<script type="text/javascript"> 
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));//--------"" 
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));//-----------"" 
</script>

函式:split() 
功能:使用一個指定的分隔符把一個字串分割儲存到陣列
例子:

str=”jpg|bmp|gif|ico|png”;
arr=theString.split(”|”);
//arr是一個包含字元值”jpg”、”bmp”、”gif”、”ico”和”png”的陣列

函式:John() 
功能:使用您選擇的分隔符將一個數組合併為一個字串
例子:

var delimitedString=myArray.join(delimiter);
var myList=new Array(”jpg”,”bmp”,”gif”,”ico”,”png”);
var portableList=myList.join(”|”);
//結果是jpg|bmp|gif|ico|png

 函式:indexOf()
功能:返回字串中匹配子串的第一個字元的下標

var myString=”JavaScript”;
var w=myString.indexOf(”v”);w will be 2
var x=myString.indexOf(”S”);x will be 4
var y=myString.indexOf(”Script”);y will also be 4

var z=myString.indexOf(”key”);z will be -1

在網上看到另一種非常簡單的方法,程式碼如下:

  function func(s, n) {
    return s.replace(/([^x00-xff])/g, “$1a”).slice(0, n).replace(/([^x00-xff])a/g, “$1″);
  }

這個方法非常巧妙,而且基本上是正確的。說“基本上”是因為它在取“123漢字測試”左邊長度為 6 的子串時,它返回的是“123漢字”,而不是“123漢”。當然,這也並不一定就是問題,某些情況下需求可能就是這樣。這個方法還可以再改進一下,如下:

 function func(s, n) {
    return s.slice(0, n).replace(/([^x00-xff])/g, “$1a”).slice(0, n).replace(/([^x00-xff])a/g, “$1″);
  }


相關推薦

js字串擷取函式slice()substring()substr()

在js中字元擷取函式有常用的三個slice()、substring()、substr()了,下面我來給大家介紹slice()、substring()、substr()函式在字元擷取時的一些用法與區別吧。 取字串的三個函式:slice(start,[end]),subst

字串擷取 JS字串擷取函式slice(),substring(),substr()的區別

JS字串擷取函式slice(),substring(),substr()的區別 在JS中,slice()、substring()、substr()都有擷取字串的作用,那他們有哪些用法上的區別呢?如果你也有疑惑,這篇文章或許能夠幫助到你。 一、substring() substrin

JS字串擷取函式slice(),substring(),substr()的區別

在JS中,slice()、substring()、substr()都有擷取字串的作用,那他們有哪些用法上的區別呢?如果你也有疑惑,這篇文章或許能夠幫助到你。 一、substring() substring()方法返回一個索引和另一個索引之間的字串,語法如

字串處理擷取slicesubstringsubstr的異同

  在專案開發過中,字串是一種很特殊的東西,不可逃避地要經常對其處理,擷取獲得某幾個字元是一種經常的事情。然而,在面試題中也經常出現對字串處理的一些問題,尤其一些大公司,比如:慧*網,最近看其面試題中就有一道:說一下falsh程式設計中slice()、substring()

Mysql字串擷取總結:left()right()substring()substring_index()

Mysql字串擷取總結:left()、right()、substring()、substring_index()   轉載:https://www.cnblogs.com/heyonggang/p/8117754.html 在實際的專案開發中有時會有對資料庫某欄位擷取部分的需求

C#幾種擷取字串的方法(split SubstringReplaceremove)

C#截圖字串常用的方法有 split 、Substring、Replace、remove等。 split的使用:  1. Split( Char ())      返回的字串陣列包含此例項中的子字串(

slicesubstringsubstrconcat這幾個不會破壞原始字串的操作方法

字串操作方法中的concat、slice、substring、substr都不會破壞原陣列,會自動返回操作後新的陣列。concat用於連線兩個或多個字串字串,支援鏈式操作,但一般情況下使用加號運算子更簡便快捷。slice、substring、substr都支援一個或兩個引數,

js中,indexOf()substring()和substr()的區別

index length world mic 返回結果 document -s start star 1. indexOf() 返回指定的字符串在字符串首次出現的位置。 比如 var str="Hello world!" documen

C字串——庫函式系列(strlenstrcatstrcpystrcmp)

一定義: 字串:字串是由零個或者多個字元組成的有限序列; 子串:字串中任意個連續的字元組成的子序列,並規定空串是任意串的子串,字串本身也是子串之一;“abcdefg”,”abc“就是其子串,但是“ade”不屬於子串範圍。 子序列:不要求字元連續,但是其順序與其在主串中相一致;上例中,“abc

JS 常用功能函式封裝,繼承陣列去重判斷資料型別

繼承方法封裝: var inherit =(function(){ var F = function(){}; return function(a,b){ F.prototype = b.prototype; a.prototype = new

slice()substring()和substr()的作用和區別

slice()它的作用是提取字串的一部分,並返回一個新的字串,他接收起始位置但不接收末尾位置,俗稱留頭不留尾,括號內跟兩個引數,但當引數為負數時,它會將它自身的長度與負數相加作為引數去運算; substring()它的作用是提取字串的子串,和slice一樣也是留頭不留尾,括號內也是兩個引數,第二個引數如果不

Delphi 字串擷取函式

如果要使用LeftStr,RightStr,MidStr必需引用系統單元StrUtils; 宣告變數Str:string; Str:=HelloWorld; 1,LeftStr(Str,2)=He;//從Str字串變數的最左邊(第一個字元包括第一個字元)開始擷取2個字元; 2,RightStr(Str

字串擷取函式substr()

substr(引數1,引數2[,引數3]); 該系統函式返回被截後的子字串,它接受2個必選引數,引數1為要擷取的字串,引數2為擷取的開始位置,引數3可選,表示擷取長度。 例子:substr(“abcdef”,1);//返回"bcdef",從索引1處開始擷取,如果沒有指定擷取長度,

excel oracle 字串擷取函式

excel left(text,num_chars),從左側開始擷取部分字串 right(text,num_chars),從右側開始擷取部分字串 其中:text表示要擷取的字串,num_chars表示要擷取的字元數 mid(text,start_num,num_chars),中間某位置開始擷取部分字串

PHP中常用的字串擷取函式

1.substr(源字串,起始位置[,長度])-擷取字串返回部分字串 <?php $str ="phpddt.com"; echo substr($str,2);//pddt.com echo substr($str,2,3);//pdd

js 字串擷取 獲取固定標識欄位

/** cha 檢索的字元 str字元 num 索引 */ function find(str,cha,num){ var x=str.indexOf(cha);

JS 字串操作函式 往指定位置插入字元 刪除指定位置字元 替換指定位置字元

刪除指定字元 var str="xxxxxxxxabcxxxxxxxxxxxx"; var pattern = "abc"; str = str.replace(new RegExp(pattern), ""); console.log(str); 執行結果就是xxxxxxxxxxxxxxxxx

JS字串替換函式全部替換方法

JS字串替換函式:Replace(“字串1″, “字串2″),  1.我們都知道JS中字串替換函式是Replace(“字串1″, “字串2″),但是這個函式只能將第一次出現的字串1替換掉,那麼我們如何才能一次性全部替換掉了?  <script>  var s = "LOVE LIFE ! LOV

C語言實現的字串擷取函式

如題,實現的就是字串擷取函式,傳入字串以及要擷取的位置,返回擷取後的字串,函式如下,測試可用。 char *cutwords(char *page,int start,int end){ ch

一個案例講解獲取字串長度的函式mb_strlen()和字串擷取函式mb_substr()

這是在專案中遇到的一小段,包含了mb_strlen()和mb_substr()兩個函式: > function _cut($_string,$_strlen){ > if(mb_