javascript substr和substring用法比較

在js中substring和substr都是用來截取字符串的,那麼substring和substr之間的具體區別在哪裏,有沒有區別呢,下面我來給各位詳細引用一些實例來介紹這些問題
substr函數和substring函數都是用來從某個“母字符串”中提取“子字符串”的函數。但用法有些差別,下面分別介紹
substr 方法 


定義和用法 


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


語法 


stringObject.substr(start [, length ]) 


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


說明 


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


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


使用方法:

字符串數據.substr(start [,length])

start是必選項。指明要提取的“子字符串”的起始位置。字符串中的第一個字符的索引爲 0。 
length是可選項。指明要提取的“子字符串”中應包括的字符個數。如果 length 爲 0 或負數,將返回一個空字符串。如果沒有指定該參數,則子字符串將延續到“母字符串”的最後。 
下面的示例演示了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> 

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)
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章