JavaScript substr, substring 比較

ECMAscript沒有將substr方法納入標準,較不建議使用

substring

longString.substring(起始位置,結束位置);
"longString".substring(3,9); //"gStrin",共取了6碼
  1. 字串開頭由0算起
  2. 參數中若只輸入起始位置,由起始位置一路取到結束
  3. 實際取到的內容是結束位置前一位
  4. 要計算自己共取了多少長度的話,直接計算:結束位置 - 起始位置
  5. 無法從字串後方開始算起
  6. 輸入負數則當成0,由0開始計算
  7. 結束位置小於起始位置,則自動將較小數字變成起始位置,較大數字變成結束位置

範例:

"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碼
  1. 字串開頭由0算起
  2. 參數中若只輸入起始位置,由起始位置一路取到結束
  3. 若要從字尾算起,起始位置輸入-1就是最後一個,-2就是倒數第二,依序類推
  4. 長度若輸入負數,則當作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