String【文字列】オブジェクト 2015 (6) / 2017 (8) ~ 2021 (12)
メモ
概要
- 文字列を表す オブジェクト
- クラス定義による継承可能
- String型【文字列型】も同等の処理が可能 (一時的に String【文字列】オブジェクト を作成)
- サロゲートペア・emoji (絵文字):考慮が必要
- リテラル値:リテラルを参照
- テンプレートリテラル :変数等を含んだフォーマットが容易
連結
- + 演算子
- += 演算子
比較
- 比較 演算子 (< 【小なり 演算子】等)
- ロケール考慮の場合、localeCompare【文字列比較 (ロケール)】
変換
- 文字列 ⇔ 数値 :Number【数値】オブジェクト 参照
- 文字列 ⇔ 日時 :Date【日時】オブジェクト 参照
関連
- 以下の部分文字列の違いについては各メソッド参照
- slice【部分文字列 (末尾からの指定可)】 :末尾からの指定可・先頭位置と終了位置の逆転不可
- substr【部分文字列 (文字長指定)】
- substring【部分文字列】 :先頭からの指定のみ・先頭位置と終了位置の逆転可
- 正規表現及び、正規表現の指定が可能な下記メソッド以外については、 RegExp【正規表現】オブジェクトを参照
外部リンク
- Unicode® Emoji (英語)
- ECMA-262 (英語)
String Literals ES2024 (15) ES2023 (14) ES2022 (13) Additional Syntax - String Literals ES2024 (15) ES2023 (14) ES2022 (13) Template Literals ES2024 (15) ES2023 (14) ES2022 (13) Tagged Templates ES2024 (15) ES2023 (14) ES2022 (13) String.raw ( template, ...substitutions ) ES2024 (15) ES2023 (14) ES2022 (13) String Objects ES2024 (15) ES2023 (14) ES2022 (13) String Exotic Objects ES2024 (15) ES2023 (14) ES2022 (13) [[GetOwnProperty]] ( P ) ES2024 (15) ES2023 (14) ES2022 (13) String.prototype.constructor ES2024 (15) ES2023 (14) ES2022 (13) length ES2024 (15) ES2023 (14) ES2022 (13) String.prototype ES2024 (15) ES2023 (14) ES2022 (13)
サロゲートペア
emoji (絵文字)
サロゲートペア
- コードポイントで処理
- [ @@iterator ]【イテレータ作成】も参照
- サロゲートペア関連メソッド
コードポイント サロゲートペア U+10000 〜 U+10FFFF ハイサロゲート:U+D800 〜 U+DBFF
ローサロゲート:U+DC00 〜 U+DFFF
emoji (絵文字)
- コード長は不定
- コピーしたemojiをペースト または fromCodePoint【コードポイント値から文字列生成】 で作成
- Intl.Segmenter【国際化:テキスト区切り】 で処理可
- コードについては、外部リンク 参照
比較表
文字列 (例) | コード | length 【文字数】 | charCodeAt() 【指定位置のUnicode値】 | codePointAt() 【指定位置のコードポイント値】 | [@@iterator] 【イテレータ作成】 for-of | Intl.Segmenter 【国際化:テキスト区切り】 |
---|---|---|---|---|---|---|
叱る | 叱:U+53F1 (第1水準) る:U+308B | 2 | 0x53f1 0x308b | 0x53f1 0x308b | 2文字 | 2文字 |
𠮟る | 𠮟:U+20B9F (第3水準) る:U+308B | 3 (不備) | (不備) 0xd842 0xdf9f 0x308b | 0x20b9f 0x308b | 2文字 | 2文字 |
👍🏴☠️ | ・thumbs up (2) U+1F44D ・pirate flag (5) U+1F3F4 U+200D U+2620 U+FE0F | 7 (不備) | (不備) 0xd83d 0xdc4d 0xd83c 0xdff4 0x200d 0x2620 0xfe0f | (不備:区切り不明) 0x1f44d 0x1f3f4 0x200d 0x2620 0xfe0f | 5文字 (不備) | 2文字 |
例
リテラル
・文字列リテラル
・テンプレートリテラル
・タグ付きテンプレート
リテラル
リテラル | 説明 | 記述 | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
使用不可文字 | 改行 | 変数・式の挿入 | ||||||||||
'【文字列】' | 文字列リテラル エスケープしていない U+000A・U+000D・U+005C は不許可 U+2028・U+2029 を許可 (詳細は、JSON オブジェクト 参照) | ' (\' を使用) | \n | +【加算・文字列結合 演算子】 | ||||||||
"【文字列】" | " (\" を使用) | |||||||||||
`【文字列】` | テンプレートリテラル | ` (\` を使用) \n~n (8進数) | \n・改行 | ${【変数・式】} +【加算・文字列結合 演算子】 | ||||||||
タグ関数`【文字列】` | タグ付きテンプレートリテラル 不正なエスケープシーケンスは、SyntaxError例外 ではなく undefined (LaTeX の\unicode コマンド等に対応) タグ関数の詳細
| ${【変数・式】} |
- ※「行の最終文字が単独の \ の場合、次の行は結合」が文字列リテラル内で有効 (下記 例 参照)
- ※次のC言語系の仕様は適用されない為、複数行にまたがる場合は +【加算・文字列結合 演算子】を使用
「連続した 文字列リテラル は結合」
エスケープシーケンス | コード | 名称・備考 | シンボル | |
---|---|---|---|---|
\b | 0x0008 | バックスペース | BACKSPACE | <BS> |
\t | 0x0009 | 水平タブ | CHARACTER TABULATION horizontal tab | <HT> |
\n | 0x000A | 改行 ラインフィード | LINE FEED newline | <LF> |
\v | 0x000B | 垂直タブ | LINE TABULATION | <VT> |
\f | 0x000C | 改ページ フォームフィード | FORM FEED | <FF> |
\r | 0x000D | 復帰 キャリッジリターン | CARRIAGE RETURN | <CR> |
\" | 0x0022 | クォーテーションマーク ダブルクォート | QUOTATION MARK double quote | " |
\' | 0x0027 | アポストロフィー シングルクォート | APOSTROPHE single quote | ' |
\\ | 0x005C | バックスラッシュ 円記号 | REVERSE SOLIDUS backslash | \ |
\n~n | 8進数 | \n~n ≦ 0xFF (strictモードでは使用不可) | ||
\xHH | 0xHH | |||
\uHHHH | 0xHHHH | |||
\u{H~H} | 0xH~H | 有効範囲:0xH~H ≦ 0x10FFFF |
※ H:16進数
例
コンストラクタ・型変換
メソッド | 説明 |
---|---|
new String ( [ value ] ) | コンストラクタ |
String ( [ value ] ) | 型変換 |
プロパティ
プロパティ | 説明 | 備考 | |
---|---|---|---|
[数値インデックス] | 文字アクセス | 下記 例 参照 参考:charAt【指定位置の文字】 | |
String.prototype. | constructor | コンストラクタ定義 | 下記 例 参照 |
length | 文字数 | 下記 例 参照 | |
String. | prototype | プロトタイプ | 下記 例 参照 |
メソッド一覧
メソッド | 説明 | |
---|---|---|
String.prototype. | [@@iterator] () | コードポイント値のイテレータオブジェクト作成 |
String.prototype. | at ( index ) | インデックス位置要素 取得 |
String.prototype. | charAt ( pos ) | 指定位置の文字 |
String.prototype. | charCodeAt ( pos ) | 指定位置のUnicode値 |
String.prototype. | codePointAt ( pos ) | 指定位置のコードポイント値 |
String.prototype. | concat ( ...args ) | 文字列連結 |
String.prototype. | endsWith ( searchString [ , endPosition] ) | 終了文字列判定 |
String. | fromCharCode ( ...codeUnits ) | Unicode値から文字列生成 |
String. | fromCodePoint ( ...codePoints ) | コードポイント値から文字列生成 |
String.prototype. | includes ( searchString [ , position ] ) | 部分文字列判定 |
String.prototype. | indexOf ( searchString, position ) | 順方向 文字列検索 |
String.prototype. | isWellFormed ( ) | サロゲートペア適正チェック |
String.prototype. | lastIndexOf ( searchString, position ) | 逆方向 文字列検索 |
String.prototype. | localeCompare ( that ) localeCompare ( that [, reserved1 [ , reserved2 ] ] ) | 文字列比較 (ロケール) |
String.prototype. | match ( regexp ) | 正規表現検索 (詳細) |
String.prototype. | matchAll ( regexp ) | 正規表現検索 (詳細イテレータ) |
String.prototype. | normalize ( [ form ] ) | 正規化 |
String.prototype. | padEnd ( maxLength [ , fillString ] ) | 末尾パディング |
String.prototype. | padStart ( maxLength [ , fillString ] ) | 先頭パディング |
String. | raw ( template , ...substitutions ) | 生の文字列取得 |
String.prototype. | repeat ( count ) | 文字列の繰り返し |
String.prototype. | replace ( searchValue, replaceValue ) | 置換 (正規表現可) |
String.prototype. | replaceAll ( searchValue, replaceValue ) | 全置換 (正規表現可・関数指定可) |
String.prototype. | search ( regexp ) | 正規表現検索 (簡易) |
String.prototype. | slice ( start [, end] ) | 部分文字列 (末尾からの指定可・先頭位置と終了位置の逆転なし) |
String.prototype. | split ( [separator [, limit]] ) | 分割 (正規表現可) |
String.prototype. | startsWith ( searchString [, position ] ) | 開始文字列判定 |
String.prototype. | substr ( start [, length] ) | 部分文字列 (文字長指定) |
String.prototype. | substring ( start [, end] ) | 部分文字列 (先頭からの指定のみ・先頭位置と終了位置の逆転あり) |
String.prototype. | toLocaleLowerCase () toLocaleLowerCase ( [ reserved1 [ , reserved2 ] ] ) | 小文字変換 (現在ロケール) |
String.prototype. | toLocaleUpperCase () toLocaleUpperCase ( [ reserved1 [ , reserved2 ] ] ) | 大文字変換 (現在ロケール) |
String.prototype. | toLowerCase () | 小文字変換 |
String.prototype. | toString () | 文字列変換 |
String.prototype. | toUpperCase () | 大文字変換 |
String.prototype. | toWellFormed () | サロゲートペア適正変換 |
String.prototype. | trim () | 両端の空白削除 |
String.prototype. | trimEnd ( ) | 末尾の空白削除 |
String.prototype. | trimLeft () | 左端の空白削除 |
String.prototype. | trimRight () | 右端の空白削除 |
String.prototype. | trimStart ( ) | 先頭の空白削除 |
String.prototype. | valueOf () | String型変換 |
HTML関連メソッド
メソッド | 説明 | |
---|---|---|
String.prototype. | anchor ( name ) | ハイパーリンク (<a name>) |
String.prototype. | big () | 大きな文字 (<big>) HTML5 廃止 |
String.prototype. | blink () | ブリンク (<blink>) 廃止 |
String.prototype. | bold () | 太字 (<b>) |
String.prototype. | fixed () | 等幅フォント (<tt>) HTML5 廃止 |
String.prototype. | fontcolor ( color ) | フォント色 (<font color>) HTML5 廃止 |
String.prototype. | fontsize ( size ) | フォントサイズ (<font size>) HTML5 廃止 |
String.prototype. | italics () | イタリック体 (<i>) |
String.prototype. | link ( url ) | ハイパーリンク (<a href>) |
String.prototype. | small () | 小さな文字 (<small>) |
String.prototype. | strike () | 取り消し線 (<strike>) HTML5 廃止 |
String.prototype. | sub () | 下付き文字 (<sub>) |
String.prototype. | sup () | 上付き文字 (<sup>) |