JavaScript/String

出典: フリー教科書『ウィキブックス(Wikibooks)』

Stringオブジェクトはプリミティブ文字列のラッパーオブジェクトです。 Stringオブジェクトのすべてのインスタンスは、StringオブジェクトのプロトタイプであるString.prototypeを継承します。String.prototypeに定義されたすべてのプロパティやメソッドは、Stringオブジェクトのインスタンスから参照することができます。StringオブジェクトはObjectオブジェクトのプロパティやメソッドを継承します。

成分の文字へのアクセス[編集]

文字列の成分の文字へのアクセスには2種類の方法があります。 そのひとつは charAt() メソッドです。

console.log('日本語'.charAt(1));  // "本"

もうひとつは、文字列を配列のようにブラケットで囲んだ数値を添字にする方法です[1]

console.log('日本語'[1]);  // "本"

このブラケット記法を使用した文字アクセスは、文字列オブジェクトを書き換えることはできません。 プリミティブはイミュータブルです。

註記:ここで紹介している2通りの方法は、いずれもサロゲートペアには対応していないので、例えば絵文字のようなサロゲートペアでエンコードされる文字には対応していません。ワークアラウンドとして、下記のようにスプレッド構文を使うとサロゲートペアを安全に扱えます。
console.log([..."😈🏝👅"][1]);  // "🏝"

プロパティ[編集]

constructor
Stringオブジェクトのプロトタイプのコンストラクタを指定します。
length
文字列の長さを返します。
N(非標準)
N番目の文字を返します。文字列を配列のように扱うことができます。
Stringオブジェクトには、ブラケット演算子([ ])を適用できます。
ただし、左辺知識として使うことは出来ません。
Stringオブジェクトは、ミュータブルです。

静的メソッド[編集]

String.fromCharCode()
文字コードの配列を文字列に変換します
String.fromCodePoint()
コードポイントの配列を文字列に変換します
String.raw() [2]

インスタンスメソッド[編集]

この節は書きかけです。この節を編集してくれる方を心からお待ちしています。

String.prototype.at()
与えられたインデックスの文字を返します。負のインデックスも可能です。数値以外のインデックスを受け入れてしまう仕様バグがあります。
String.prototype.charAt()
与えられたインデックスの文字を返します。
String.prototype.charCodeAt()
与えられたインデックスの文字のUnicodeバイト表現を返します。
String.prototype.codePointAt()
String.prototype.concat()
与えられた文字列を連結して返します。
String.prototype.constructor()
String.prototype.endsWith()
String.prototype.includes()
String.prototype.indexOf()
与えられた文字列が最初に現れるインデックスを返します。見つからない場合は-1を返します。
String.prototype.isWellFormed()
String.prototype.lastIndexOf()
与えられた文字列が最後に現れるインデックスを返します。見つからない場合は-1を返します。
String.prototype.localeCompare()
与えられた文字列との比較結果を返します。
String.prototype.matchAll()
String.prototype.match()
文字列の中の指定された正規表現に一致する部分を返します。
String.prototype.normalize()
String.prototype.padEnd()
String.prototype.padStart()
String.prototype.repeat()
String.prototype.replaceAll()
String.prototype.replace()
文字列を置換します。
String.prototype.search()
文字列の中に指定された正規表現に一致する部分があるかどうかを検索して返します。
String.prototype.slice()
文字列の部分文字列を取り出して返します。
String.prototype.split()
文字列を分割して返します。
String.prototype.startsWith()
String.prototype.substring()
文字列の2つのインデックスの間にある部分文字列を返します。
String.prototype.substr()
文字列の基点から指定された長さの部分文字列を返します。
String.prototype.toLocaleLowerCase()
文字列を現在のロケールに基づいて小文字に変換して返します。
String.prototype.toLocaleUpperCase()
文字列を現在のロケールに基づいて大文字に変換して返します。
String.prototype.toLowerCase()
文字列を小文字に変換して返します。
String.prototype.toString()
Stringオブジェクトのインスタンスの文字列を返します。このメソッドはObject.prototype.toStringメソッドをオーバーライドしています。
String.prototype.toUpperCase()
文字列を大文字に変換して返します。
String.prototype.toWellFormed()
String.prototype.trimEnd()
String.prototype.trimLeft()
(非標準)String.prototype.trimLeft === String.prototype.trimStart
String.prototype.trimRight()
(非標準)String.prototype.trimRight === String.prototype.trimEnd
文字列の末尾側の空白文字を削除して返します。
String.prototype.trimStart()
文字列の先頭側の空白文字を削除して返します。
String.prototype.trim()
文字列の両側(先頭と末尾)の空白文字を削除して返します。
String.prototype.valueOf()
StringオブジェクトのインスタンスをプリミティブなJavaScriptの文字列に変換して返します。このメソッドはObject.prototype.valueOfメソッドをオーバーライドしています。

HTML ラッパーメソッド[編集]

StringオブジェクトのHTML ラッパーメソッドはすべて非標準であり、後方互換のためだけに残されています。

String.prototype.anchor()
<a name="name">string</a>
HTML5ではA要素のname属性は廃止されました。
String.prototype.big()
<big>string</big>
String.prototype.blink()
<blink>string</blink>
String.prototype.bold()
<b>string</b>
String.prototype.fixed()
<tt>string</tt>
String.prototype.fontcolor()
<font color="color">sting</font>
String.prototype.fontsize()
<font size="size">string</font>
String.prototype.italics()
<i>string</i>
String.prototype.link()
<a href="href">string</a>
String.prototype.small()
<small>string</small>
String.prototype.strike()
<strike>string</strike>
String.prototype.sub()
<sub>string</sub>
String.prototype.sup()
<sup>string</sup>

脚注[編集]

  1. ^ ECMACScript 5thで導入されました。
  2. ^ https://tc39.es/ecma262/#sec-string.raw

外部リンク[編集]

このページ「JavaScript/String」は、まだ書きかけです。加筆・訂正など、協力いただける皆様の編集を心からお待ちしております。また、ご意見などがありましたら、お気軽にトークページへどうぞ。