String.prototype.substr()
å·²å¼ç¨: ä¸åæ¨è使ç¨è¯¥ç¹æ§ãè½ç¶ä¸äºæµè§å¨ä»ç¶æ¯æå®ï¼ä½ä¹è®¸å·²ä»ç¸å ³ç web æ åä¸ç§»é¤ï¼ä¹è®¸æ£åå¤ç§»é¤æåºäºå ¼å®¹æ§èä¿çã请尽éä¸è¦ä½¿ç¨è¯¥ç¹æ§ï¼å¹¶æ´æ°ç°æç代ç ï¼åè§æ¬é¡µé¢åºé¨çå ¼å®¹æ§è¡¨æ ¼ä»¥æå¯¼ä½ ä½åºå³å®ã请注æï¼è¯¥ç¹æ§éæ¶å¯è½æ æ³æ£å¸¸å·¥ä½ã
String å¼ç substr() æ¹æ³è¿å该å符串çä¸é¨åï¼ä»æå®çç´¢å¼å¼å§ï¼ç¶åæ©å±å°ç»å®æ°éçå符ã
夿³¨ï¼substr() ä¸å±äº ECMAScript 主è¦è§èââå®å¨éä»¶ B: Web æµè§å¨çéå ECMAScript åè½ä¸å®ä¹ï¼è¿æ¯éæµè§å¨è¿è¡æ¶çå¯éæ åãå æ¤ï¼å»ºè®®äººä»¬ä½¿ç¨æ åç String.prototype.substring() å String.prototype.slice() æ¹æ³ï¼ä»¥ä¾¿ä½¿ä»ä»¬ç代ç è½å¤æ´å¥½å°ãæå¤§ç¨åº¦å°è·¨å¹³å°ãString.prototype.substring() 页é¢å¯¹è¿ä¸ç§æ¹æ³è¿è¡äºä¸äºæ¯è¾ã
å°è¯ä¸ä¸
const str = "Mozilla";
console.log(str.substr(1, 2));
// Expected output: "oz"
console.log(str.substr(2));
// Expected output: "zilla"
è¯æ³
substr(start)
substr(start, length)
åæ°
start-
è¿ååå符串ä¸è¦å å«ç第ä¸ä¸ªå符çç´¢å¼ã
lengthå¯é-
è¦æåçå符æ°ã
è¿åå¼
ä¸ä¸ªå å«ç»å®å符串æå®é¨åçæ°å符串ã
æè¿°
å符串ç substr() æ¹æ³ä»åç¬¦ä¸²ä¸æå length å符ï¼ä» start ç´¢å¼å¼å§è®¡æ°ã
- 妿
start >= str.lengthï¼åè¿å空å符串ã - 妿
start < 0ï¼åç´¢å¼ä»å符串æ«å°¾å¼å§è®¡æ°ãæ´åç¡®å°è¯´ï¼å¨è¿ç§æ åµä¸ï¼åå符串ä»max(start + str.length, 0)å¼å§ã - 妿çç¥
startæå ¶å¼ä¸ºundefinedï¼åå°å ¶è§ä¸º0ã - 妿çç¥
lengthæå ¶å¼ä¸ºundefinedï¼æè 妿start + length >= str.lengthï¼åsubstr()伿åå符å°å符串æ«å°¾ã - 妿
length < 0ï¼åè¿å空å符串ã - 对äº
startålengthï¼NaN被è§ä¸º0ã
尽管æä»¬å»ºè®®ä½ é¿å
ä½¿ç¨ substr()ï¼ä½æ¯æ²¡æç®åçæ¹æ³å¯ä»¥å°éç代ç ä¸ç substr() è¿ç§»å° slice() æ substring()ï¼èæ é为 substr() ç¼åä¸ä¸ª polyfillãä¾å¦ï¼å½ str = "01234", a = 1, l = -2 æ¶ï¼str.substr(a, l)ãstr.slice(a, a + l) å str.substring(a, a + l) 齿ä¸åçç»æââsubstr() è¿å空å符串ï¼slice() è¿å "123"ï¼è substring() è¿å "0"ãå®é
çéæè·¯å¾åå³äºå¯¹ a å l èå´çäºè§£ã
示ä¾
>ä½¿ç¨ substr()
const aString = "Mozilla";
console.log(aString.substr(0, 1)); // 'M'
console.log(aString.substr(1, 0)); // ''
console.log(aString.substr(-1, 1)); // 'a'
console.log(aString.substr(1, -1)); // ''
console.log(aString.substr(-3)); // 'lla'
console.log(aString.substr(1)); // 'ozilla'
console.log(aString.substr(-20, 2)); // 'Mo'
console.log(aString.substr(20, 2)); // ''
è§è
| è§è |
|---|
| ECMAScript® 2027 Language Specification> # sec-string.prototype.substr> |