String.prototype.substring()
Baseline
Widely available
This feature is well established and works across many devices and browser versions. Itâs been available across browsers since 2015å¹´7æ.
substring() 㯠String å¤ã®ã¡ã½ããã§ãæååã®ä¸é¨ãéå§ã¤ã³ããã¯ã¹ããçµäºã¤ã³ããã¯ã¹ã®æåã¾ã§ãã¾ãã¯çµäºã¤ã³ããã¯ã¹ãæå®ãããªãã£ãå ´åã¯æååã®æå¾ã¾ã§ãè¿ãã¾ãã
試ãã¦ã¿ã¾ããã
const str = "Mozilla";
console.log(str.substring(1, 3));
// äºæ³ãããçµæ: "oz"
console.log(str.substring(2));
// äºæ³ãããçµæ: "zilla"
æ§æ
substring(indexStart)
substring(indexStart, indexEnd)
弿°
indexStart-
è¿ãããé¨åæååã«å«ã¾ãããæåã®æåã®ä½ç½®ã§ãã
indexEndçç¥å¯-
è¿ãããé¨åæååããé¤å¤ããããæåã®æåã®ä½ç½®ã§ãã
è¿å¤
ä¸ããããæååããæ½åºãããåºéãå«ãæ°ããæååã§ãã
解説
substring() 㯠indexStart ãã indexEnd ã®ç´åã¾ã§ã®æåãåãåºãã¾ããç¹ã«ã
indexEndãçç¥ããããundefinedã§ãã£ããããå ´åãsubstring()ã¯æååã®æå¾ã¾ã§ã®æåãåãåºãã¾ããindexStartãindexEndã¨çããå ´åãsubstring()ã¯ç©ºã®æååãè¿ãã¾ããindexStartãindexEndãã大ããã£ãå ´åãsubstring()㯠2 ã¤ã®å¼æ°ã交æããããã®ã¨ãã¦å®è¡ããã¾ããä¸è¨ã®ä¾ãã覧ãã ããã
弿°ã 0 æªæºãã¾ã㯠stringName.length ãè¶
ããå ´åãããã¯ãããã 0 㨠stringName.length ã¨ãã¦æ±ããã¾ãã
ããããã®å¼æ°ã NaN ã®å ´åããã㯠0 ã¨ãã¦æ±ããã¾ãã
ä¾
>substring() ã®ä½¿ç¨
以ä¸ã®ä¾ã§ã¯ substring() ã使ç¨ãã¦ã "Mozilla" ã¨ããæååããæåãåãåºãã¦è¡¨ç¤ºãã¾ãã
const anyString = "Mozilla";
console.log(anyString.substring(0, 1)); // "M"
console.log(anyString.substring(1, 0)); // "M"
console.log(anyString.substring(0, 6)); // "Mozill"
console.log(anyString.substring(4)); // "lla"
console.log(anyString.substring(4, 7)); // "lla"
console.log(anyString.substring(7, 4)); // "lla"
console.log(anyString.substring(0, 7)); // "Mozilla"
console.log(anyString.substring(0, 10)); // "Mozilla"
substring() 㨠length ããããã£ã®ä½¿ç¨
次ã®ä¾ã§ã¯ substring() ã¡ã½ãã㨠length ããããã£ã使ç¨ãã¦ãç¹å®ã®æååã®æå¾ã®æåãæãåºãã¦ãã¾ãããã®æ¹æ³ã§ã¯ãä¸è¨ã®ä¾ã¨åãããããªããæåã¨æå¾ã®ä½ç½®ãç¥ã£ã¦ããå¿
è¦ããªããã¨èããã¨ãè¦ããããããããã¾ããã
const text = "Mozilla";
// æååã®æå¾ã® 4 æåãåã
console.log(text.substring(text.length - 4)); // "illa" ã¨è¡¨ç¤º
// æååã®æå¾ã® 5 æåãåã
console.log(text.substring(text.length - 5)); // "zilla" ã¨è¡¨ç¤º
substring() 㨠substr() ã®éã
substring() ã¡ã½ãã㨠substr() ã¡ã½ããã¨ã®éã«ã¯å¾®å¦ãªéããããã®ã§ãæ··ä¹±ããªãããã«æ³¨æãã¦ãã ããã
substr()ã® 2 ã¤ã®å¼æ°ã¯startããã³lengthã§ããã®ã«å¯¾ããsubstring()ã®å ´åã¯startããã³endã§ããsubstr()ã®startã¤ã³ããã¯ã¹ã¯è² ã®æ°ã®å ´åã«æååã®æ«å°¾ããéã«é²ãã®ã«å¯¾ããsubstring()ã¯0ã«ä¸¸ãããã¾ããsubstr()ã§è² ã®é·ããæå®ãã㨠0 ã¨è¦ãªããã¾ãããsubstring()ã§endãstartãããå°ããå ´å㯠2 ã¤ã®ã¤ã³ããã¯ã¹ã交æããã¾ãã
ããã«ã substr() 㯠ECMAScript ã®å¤ãæ©è½ã¨ã¿ãªããã¦ãããå°æ¥ã®ãã¼ã¸ã§ã³ã§ã¯åé¤ãããå¯è½æ§ããããããã§ããã°ä½¿ç¨ããªãã®ãæè¯ã§ãã
const text = "Mozilla";
console.log(text.substring(2, 5)); // "zil"
console.log(text.substr(2, 3)); // "zil"
substring() 㨠slice() ã®éã
substring() ã¡ã½ãã㨠slice() ã¡ã½ããã¯ã»ã¼åãã§ãããç¹ã«è² ã®æ°ã®å¼æ°ã®æ±ãã«ã¤ãã¦ãããã¤ãã®å¾®å¦ãªéããããã¾ãã
substring() ã¡ã½ãã㯠indexStart ã indexEnd ããã大ããå ´åã« 2 ã¤ã®å¼æ°ã交æããã®ã§ãæååãè¿ããã¾ããslice() ã¡ã½ããã¯ãã®å ´åã«ã¯ç©ºæååãè¿ãã¾ãã
const text = "Mozilla";
console.log(text.substring(5, 2)); // "zil"
console.log(text.slice(5, 2)); // ""
ã©ã¡ããã¾ãã¯ä¸¡æ¹ã®å¼æ°ãè² ã®æ°ã¾ã㯠NaN ã§ãã£ãå ´åã substring() ã¡ã½ããã¯ãããã 0 ã¨ãã¦æ±ãã¾ãã
console.log(text.substring(-5, 2)); // "Mo"
console.log(text.substring(-5, -2)); // ""
slice() ã NaN ã®å¼æ°ã 0 ã¨ãã¦æ±ãã¾ãããè² ã®æ°ãæå®ããå ´åã¯ãæååã®æ«å°¾ããã®æåæ°ã§ä½ç½®ãæ¢ãã¾ãã
console.log(text.slice(-5, 2)); // ""
console.log(text.slice(-5, -2)); // "zil"
è² ã®æ°ã使ç¨ããä¾ã¯ slice() ã®ãã¼ã¸ãã覧ãã ããã
æååå ã®é¨åæååã®ç½®ãæã
次ã®ä¾ã¯ãæååå
ã®é¨åæååãç½®ãæãã¾ããããã¯åç¬ã®æåã¨é¨åæååã®ä¸¡æ¹ãç½®ãæãã¾ãããã®ä¾ã®æå¾ã«ãã颿°å¼ã³åºãã¯ãå
ã®æåå Brave New World ããæåå Brave New Web ãçæãã¾ãã
// fullS ã¨ããæååå
ã§ oldS ã newS ã«ç½®ãæãã¾ãã
function replaceString(oldS, newS, fullS) {
for (let i = 0; i < fullS.length; ++i) {
if (fullS.substring(i, i + oldS.length) === oldS) {
fullS =
fullS.substring(0, i) +
newS +
fullS.substring(i + oldS.length, fullS.length);
}
}
return fullS;
}
replaceString("World", "Web", "Brave New World");
ãªãããã㯠oldS ã newS ã®é¨åæååã§ããå ´åã«ç¡éã«ã¼ãã«é¥ãã¾ãã â ä¾ãã°ã "World" ã "OtherWorld" ã§ç½®ãæããå ´åãªã©ã§ãã
ç½®ãæããã®ã«ããè¯ãæ¹æ³ã¯ä»¥ä¸ã®éãã§ãã
function replaceString(oldS, newS, fullS) {
return fullS.split(oldS).join(newS);
}
ä¸è¿°ã®ã³ã¼ãã¯ã substring ã®æä½ã®ä¾ãæä¾ãã¾ããé¨åæååãç½®ãæããå¿
è¦ãããã¨ããå¤ãã®å ´å String.prototype.replace() ã使ç¨ãã¾ãã
仿§æ¸
| Specification |
|---|
| ECMAScript® 2027 Language Specification> # sec-string.prototype.substring> |