javascript substr和substring用法比較_javascript技巧

來源:互聯網
上載者:User

substr函數和substring函數都是用來從某個“母字串”中提取“子字串”的函數。但用法有些差別,下面分別介紹

substr 方法

定義和用法

substr 方法用於返回一個從指定位置開始的指定長度的子字串。

文法

stringObject.substr(start [, length ])

參數 描述
start 必需。所需的子字串的起始位置。字串中的第一個字元的索引為 0。
length 可選。在返回的子字串中應包括的字元個數。

說明

如果start為負數,則start=str.length+start。
如果 length 為 0 或負數,將返回一個Null 字元串。
如果沒有指定該參數,則子字串將延續到stringObject的最後。

功能:從“母字串”的“指定位置”開始提取“指定長度”的“子字串”。

使用方法:

複製代碼 代碼如下:
字串資料.substr(start [,length])

start是必選項。指明要提取的“子字串”的起始位置。字串中的第一個字元的索引為 0。
length是可選項。指明要提取的“子字串”中應包括的字元個數。如果 length 為 0 或負數,將返回一個Null 字元串。如果沒有指定該參數,則子字串將延續到“母字串”的最後。
下面的樣本示範了substr函數的用法。
複製代碼 代碼如下:

母串 = "上海自來水來自海上";
子串1 = 母串.substr(2,4);
//從編號為2的字元開始,提取4個長度的子字串。 傳回值: "自來水來"
子串2 = 母串.substr(2);
//從編號為2的字元開始,到最後一個字元的子字串。 傳回值: "自來水來自海上"


複製代碼 代碼如下:

var stringObject = "hello world!";
 alert(stringObject.substr(3)); // lo world!
 alert(stringObject.substr(3,stringObject.length)); // lo world!
 alert(stringObject.substr(3,4)); // lo w

舉例:
複製代碼 代碼如下:

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));--------------"56789"
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));------------"9"
alert(str.substr(-1,-5));-----------""


substring函數

功能:從“母字串”中提取從“起始位置”到“結束位置”的“子字串”。

使用方法:字串資料.substring(start,end)

start參數指明子字串中“第一個字元”的位置。
end參數指明子字串中“最後一個字元”的“後面一個字元”的位置。
substring函數返回一個從 "start位置" 開始 到 "end-1位置" 結束(不包含 "end位置"的字元 )的子字串。
substring函數使用 start 和 end 兩者中的較小值作為子字串的起始點。例如,字串資料.substring(0,3) 和 字串資料.substring(3,0) 將返回相同的子字串。

如果 start 或 end 為 NaN 或者負數,那麼將其替換為0。

子字串的長度等於 start 和 end 之差的絕對值。例如,字串資料.substring(0,3) 和 字串資料.substring(3,0) 返回的子字串的的長度是 3。


下面的樣本示範了substring函數的用法。

例
<script type="text/javascript"> var stringObject = "hello world!"; alert(stringObject.substring(3)); // lo world! alert(stringObject.substring(3,stringObject.length)); // lo world! alert(stringObject.substring(3,7)); // lo w,空格也算在內[l][o][ ][w] </script>
[Ctrl+A 全選 注:如需引入外部Js需重新整理才能執行]


2)如果startIndex、endIndex 相等,則返回空串。如果startIndex 比 endIndex 大,則提取子串之前,調換兩個參數。即stringObject.substring(startIndex,endIndex)等同於stringObject.substring(endIndex,startIndex)

複製代碼 代碼如下:

var stringObject = "hello world!";
alert(stringObject.substring(3,3)); // 空串
alert(stringObject.substring(3,7)); // lo w
alert(stringObject.substring(7,3)); // lo w


複製代碼 代碼如下:

母串 = "上海自來水來自海上";
子串 = 母串.substring(2,4);
//從“編號為2”的字元開始,到“編號為(4-1)”的字元結束的子字串。傳回值: "自來"


substr()可以代替substring()來使用,從上面代碼看出 stringObject.substr(3,4) 等同於stringObject.substring(3,7)

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.