Water Sunlight

軽量プログラミングの文法 - JavaScript/Python

ユーザ用ツール

サイト用ツール


js:build-in:string

差分

このページの2つのバージョン間の差分を表示します。

この比較画面にリンクする

両方とも前のリビジョン 前のリビジョン
次のリビジョン
前のリビジョン
js:build-in:string [2021/09/06 10:45]
y2sunlight [分解]
js:build-in:string [2021/09/13 11:02] (現在)
y2sunlight
行 8: 行 8:
  
   * [[#基本操作|基本操作]]   * [[#基本操作|基本操作]]
 +    * [[#toString()|toString()]]
 +    * [[#valueOf()|valueOf()]]
 +    * [[#toLowerCase()|toLowerCase()]]
 +    * [[#toUpperCase()|toUpperCase()]]
 +    * [[#localeCompare()|localeCompare()]]
 +    * [[#trim()|trim()]]
 +    * [[#trimStart()|trimStart()]]
 +    * [[#trimEnd()|trimEnd()]]
 +    * [[#charAt()|charAt()]]
   * [[#検索|検索]]   * [[#検索|検索]]
 +    * [[#includes()|includes()]]
 +    * [[#indexOf()|indexOf()]]
 +    * [[#lastIndexOf()|lastIndexOf()]]
 +    * [[#startsWith()|startsWith()]]
 +    * [[#endsWith()|endsWith()]]
   * [[#分解|分解]]   * [[#分解|分解]]
 +    * [[#split()|split()]]
 +    * [[#substr()|substr()]]
 +    * [[#substring()|substring()]]
 +    * [[#slice()|slice()]]
   * [[#合成|合成]]   * [[#合成|合成]]
 +    * [[#concat()|concat()]]
 +    * [[#padStart()|padStart()]]
 +    * [[#padEnd()|padEnd()]]
 +    * [[#repeat()|repeat()]]
   * [[#正規表現|正規表現]]   * [[#正規表現|正規表現]]
 +    * [[#match()|match()]]
 +    * [[#search()|search()]]
 +    * [[#replace()|replace()]]
 +    * [[#matchAll()|matchAll()]]
 +    * [[#replaceAll()|replaceAll()]]
   * [[#コード変換|コード変換]]   * [[#コード変換|コード変換]]
-    * [[#charAt()|charAt()]] 
     * [[#charCodeAt()|charCodeAt()]]     * [[#charCodeAt()|charCodeAt()]]
     * [[#codePointAt()|codePointAt()]]     * [[#codePointAt()|codePointAt()]]
行 176: 行 202:
 <sxh javascript;title:Example> <sxh javascript;title:Example>
 let str = "hello, sato."; let str = "hello, sato.";
-console.log(str.toLowerCase());  // HELLO, SATO.+console.log(str.toUpperCase());  // HELLO, SATO.
 </sxh> </sxh>
  
行 237: 行 263:
 let str = " こんにちは "; let str = " こんにちは ";
 console.log(str.trimEnd());  // " こんにちは" console.log(str.trimEnd());  // " こんにちは"
 +</sxh>
 +
 +\\
 +=== charAt() ===
 +
 +<code javascript>
 +let character = str.charAt(index)
 +</code>
 +
 +指定された位置の文字 (UTF-16 コード 1 つから成ります) を返します。詳しくは[[https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/String/charAt|MDN]]をご覧下さい。
 +
 +<sxh javascript;title:Example>
 +let str = "こんにちは。佐藤さん。";
 +console.log(str.charAt(6));  // 佐
 </sxh> </sxh>
  
行 276: 行 316:
  
 <code javascript> <code javascript>
-lastIndexOf(searchValue+lastIndexOf(searchValue[, fromIndex])
-lastIndexOf(searchValue, fromIndex)+
 </code> </code>
  
行 331: 行 370:
 <sxh javascript;title:Example> <sxh javascript;title:Example>
 let csv = "佐藤,鈴木,高橋"; let csv = "佐藤,鈴木,高橋";
-console.log(csv.split(','));+console.log(csv.split(','));  // ["佐藤", "鈴木", "高橋"]
 </sxh> </sxh>
  
行 338: 行 377:
 <sxh javascript;title:Example> <sxh javascript;title:Example>
 let csv = "佐藤 , 鈴木 , 高橋"; let csv = "佐藤 , 鈴木 , 高橋";
-console.log(csv.split(/\s*,\s*/));+console.log(csv.split(/\s*,\s*/));  // ["佐藤", "鈴木", "高橋"]
 </sxh> </sxh>
  
行 346: 行 385:
  
 <code javascript> <code javascript>
-substr(start+substr(start[, length])
-substr(start, length)+
 </code> </code>
  
行 354: 行 392:
 <sxh javascript;title:Example> <sxh javascript;title:Example>
 let str = "こんにちは。佐藤さん。"; let str = "こんにちは。佐藤さん。";
-console.log(str .substr(6, 2));  // +console.log(str.substr(6, 2));  // 佐藤
 </sxh> </sxh>
 +
 +特殊な場合の例を以下に挙げておきます。
 +
 +<sxh javascript;title:Example>
 +let str = "こんにちは。佐藤さん。";
 +console.log(str.substr(6, -1));   // (空文字が返る) --- (1)
 +console.log(str.substr(-5, 2));   // 佐藤 --- (2)
 +</sxh>
 +
 +(1)の場合( length < 0 )、substr は、空文字を返します。
 +
 +(2)の場合( start < 0 )、substr は、負数( -5 )を文字列末尾からのインデックスと見なします。従って ''str.substr(6, 2)'' と同じ結果になります。一般に、start に負数を指定した場合は、''<nowiki>str.substr((str.length - start), length)</nowiki>'' と同じ結果になります。
  
 \\ \\
行 380: 行 430:
 console.log(str.substring(6, -1));  // こんにちは。 --- (2) console.log(str.substring(6, -1));  // こんにちは。 --- (2)
 </sxh> </sxh>
 +
 +(1)の場合( start < end )、substring は、start と end を入れ替えます。従って ''str.substring(6, 8)'' と同じ結果になります。
 +
 +(2)の場合( end < 0 )、substring は、まず負数( -1 )を 0 に置き換えた後、( start < end )なので、start と end を入れ替えます。従って ''str.substring(0, 6)'' と同じ結果になります。
  
 \\ \\
行 401: 行 455:
 <sxh javascript;title:Example> <sxh javascript;title:Example>
 let str = "こんにちは。佐藤さん。"; let str = "こんにちは。佐藤さん。";
-console.log(str.slice(8, 6));   // (空文字が返る) --- (1)+console.log(str.slice(8, 6));   // (空文字が返る) --- (1)
 console.log(str.slice(6, -1));  // 佐藤さん --- (2) console.log(str.slice(6, -1));  // 佐藤さん --- (2)
 </sxh> </sxh>
  
 +(1)の場合( start < end )、slice は、空文字を返します。
 +
 +(2)の場合( end < 0 )、slice は、負数( -1 )を文字列末尾からのインデックスと見なします。従って ''str.slice(6, str.length - 1)'' と同じ結果になります。一般に、end に負数を指定した場合は、str.slice(start, str.length - end) と同じ結果になります。
  
 \\ \\
行 431: 行 488:
 </code> </code>
  
-現在の文字列の先頭から指定した文字列で埋めた、長さ targetLength 文字の新たな文字列を作成します。詳しくは[[https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/String/padStart/charCodeAt|MDN]]をご覧下さい。+先頭を padString で埋めた、長さ targetLength の新しい文字列を作成します。padString が省略された場合は空白になります。詳しくは[[https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/String/padStart|MDN]]をご覧下さい。
  
 <sxh javascript;title:Example> <sxh javascript;title:Example>
 +let str = "佐藤";
 +console.log(str.padStart(5)); // "   佐藤"
 </sxh> </sxh>
  
行 444: 行 503:
 </code> </code>
  
-現在の文字列の末尾から指定された文字列で埋めた、長さ targetLength 文字の新たな文字列をします。詳しくは[[https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/String/padEnd|MDN]]をご覧下さい。+末尾を padString で埋めた、長さ targetLength の新しい文字列を作成ます。padString が省略された場合は空白になります。詳しくは[[https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/String/padEnd|MDN]]をご覧下さい。
  
 <sxh javascript;title:Example> <sxh javascript;title:Example>
 +let str = "佐藤";
 +console.log(str.padEnd(5)); // "佐藤   "
 </sxh> </sxh>
  
行 457: 行 518:
 </code> </code>
  
-オブジェクトの要素を count 回繰り返した文字列を返します。詳しくは[[https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/String/repeat|MDN]]をご覧下さい。+count 回繰り返した文字列を返します。詳しくは[[https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/String/repeat|MDN]]をご覧下さい。
  
 <sxh javascript;title:Example> <sxh javascript;title:Example>
 +let str = "佐藤";
 +console.log(str.repeat(3)); // 佐藤佐藤佐藤
 </sxh> </sxh>
  
行 472: 行 535:
 </code> </code>
  
-文字列に対して正規表現 regexp を指定し、合致した部分文字列を取得します。詳しくは[[https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/String/match|MDN]]をご覧下さい+文字列に対して正規表現 regexp を指定し、合致した部分文字列を取得します。
  
 <sxh javascript;title:Example> <sxh javascript;title:Example>
-let str = "こんにちは。佐藤さん"; +let str = "こんにちは。佐藤さん、鈴木さん、高橋さん"; 
-console.log(str.match(//g));  // ["", ""]+console.log(str.match(/(佐藤|鈴木|高橋)/g));  // ["佐藤", "鈴木", "高橋"]
 </sxh> </sxh>
 +
 +/g フラグの有無によって返される値が異なります。上例では合致した部分文字列の配列が返されます。詳しくは[[https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/String/match|MDN]]をご覧下さい。
  
 \\ \\
  
-=== matchAll() ===+=== search() ===
  
 <code javascript> <code javascript>
-str.matchAll(regexp)+str.search(regexp)
 </code> </code>
  
-regexp が一するもすべてイテレーターします。詳しくは[[https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/String/matchAll|MDN]]をご覧下さい。+文字列に対してい正規表現 regexp を使用し、合した最初文字列位置取得します。詳しくは[[https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/String/search|MDN]]をご覧下さい。
  
 <sxh javascript;title:Example> <sxh javascript;title:Example>
 +let str = "こんにちは。佐藤さん。";
 +console.log(str.search(/佐藤/g));  // 6
 </sxh> </sxh>
  
行 509: 行 576:
 \\ \\
  
-=== replaceAll() ===+=== matchAll() ===
  
 <code javascript> <code javascript>
-const newStr = str.replaceAll(regexp|substr, newSubstr|function)+str.matchAll(regexp)
 </code> </code>
  
-searchFor 現れたところすべてを replaceWith で置換するために使用します。 searchFor は文字列または正規表現であり、 replaceWith は文字列また関数です。詳しくは[[https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/String/replaceAll|MDN]]をご覧下さい。+キャプチャグループを含む regexp 一致するすべてのイテレーターします。regexp の ''/g'' フラグ必須です。詳しくは[[https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/String/matchAll|MDN]]をご覧下さい。
  
 <sxh javascript;title:Example> <sxh javascript;title:Example>
 +let str = "こんにちは。佐藤さん、鈴木さん、高橋さん";
 +let matches = str.matchAll(/(佐藤|鈴木|高橋)さん/g);
 +for(match of matches) {
 +    console.log(match);
 +}
 +// 出力結果
 +// ["佐藤さん", "佐藤", index: 6, input: "こんにちは。佐藤さん、鈴木さん、高橋さん", ... ]
 +// ["鈴木さん", "鈴木", index: 11, input: "こんにちは。佐藤さん、鈴木さん、高橋さん", ... ]
 +// ["高橋さん", "高橋", index: 16, input: "こんにちは。佐藤さん、鈴木さん、高橋さん", ... ]
 </sxh> </sxh>
  
 \\ \\
  
-=== search() ===+=== replaceAll() ===
  
 <code javascript> <code javascript>
-str.search(regexp)+const newStr = str.replaceAll(searchFor, replaceWith)
 </code> </code>
  
-文字列に対してい正規表現 regexp を使用し合致した最初の文字列の位置を取得します。詳しくは[[https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/String/search|MDN]]をご覧下さい。+searchFor が現れたところすべてを replaceWith で置換するために使用します。 searchFor は文字列または正規表現であり、 replaceWith は文字列または関数です。詳しくは[[https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/String/replaceAll|MDN]]をご覧下さい。
  
 <sxh javascript;title:Example> <sxh javascript;title:Example>
-let str = "こんにちは。佐藤さん"; +let str = "こんにちは。佐藤さん、鈴木さん、高橋さん"; 
-console.log(str.search(/佐藤/g));  // 6+console.log(str.replaceAll(/(佐藤|鈴木|高橋)/g, '***'));  // こんにちは。***さん、***さん、***さん
 </sxh> </sxh>
  
行 538: 行 614:
  
 ==== コード変換 ==== ==== コード変換 ====
- 
-=== charAt() === 
- 
-<code javascript> 
-let character = str.charAt(index) 
-</code> 
- 
-指定された位置の文字 (UTF-16 コード 1 つから成ります) を返します。詳しくは[[https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/String/charAt|MDN]]をご覧下さい。 
- 
-<sxh javascript;title:Example> 
-let str = "こんにちは。佐藤さん。"; 
-console.log(str.charAt(6));  // 佐 
-</sxh> 
- 
-\\ 
  
 === charCodeAt() === === charCodeAt() ===
js/build-in/string.1630892739.txt.gz · 最終更新: 2021/09/06 10:45 by y2sunlight