JavaScript substr, substring 比較
ECMAscript沒有將substr方法納入標準,較不建議使用
substring
longString.substring(起始位置,結束位置);
"longString".substring(3,9); //"gStrin",共取了6碼
- 字串開頭由0算起
- 參數中若只輸入起始位置,由起始位置一路取到結束
- 實際取到的內容是結束位置前一位
- 要計算自己共取了多少長度的話,直接計算:結束位置 - 起始位置
- 無法從字串後方開始算起
- 輸入負數則當成0,由0開始計算
- 結束位置小於起始位置,則自動將較小數字變成起始位置,較大數字變成結束位置
範例:
"0123456789" //這串數字只是方便對應字串位置
"longString".substring(9,3); //"gStrin"。等同於 (3,9)
"longString".substring(-2,3); //"lon"。等同於(0,3)
"longString".substring(-2,-4); //"",空字串。等同於(0,0)
"longString".substring(3); //"gString"。從第3個取到結束
substr
longString.substr(起始位置,長度);
"longString".substr(3,4); //"gStr",共取了4碼
- 字串開頭由0算起
- 參數中若只輸入起始位置,由起始位置一路取到結束
- 若要從字尾算起,起始位置輸入-1就是最後一個,-2就是倒數第二,依序類推
- 長度若輸入負數,則當作0使用。即取0個值
範例:
"0123456789" //這串數字只是方便對應字串位置
"longString".substr(-6,3); //"Str"
"longString".substr(2,-5); // "",空字串。由第2個取0個
"longString".substr(-4,-3); //"",空字串。由倒數第4個取0個
"longString".substr(3); //"gString"。從第3個取到結束
"longString".substr(-4); // "ring"。從倒數第4個取到結束
需求上像是要從後方計算來取值的話,substr反而比較方便
大部份情況還是建議使用substring