String【文字列】オブジェクト

目次: メモ リテラル コンストラクタ・型変換 プロパティ メソッド HTML関連メソッド 関連

メモ

リテラル (文字列リテラル・テンプレートリテラル ・タグ付きテンプレート )

リテラル

リテラル説明記述
使用不可文字改行変数・式の挿入
'【文字列】'文字列リテラル '
(\' を使用)
\n +【加算・文字列結合 演算子】
"【文字列】""
(\" を使用)
`【文字列】` テンプレートリテラル `
(\` を使用)

\n~n (8進数)
\n・改行 ${【変数・式】}
+【加算・文字列結合 演算子】
タグ関数`【文字列】` タグ付きテンプレート
タグ関数の詳細
引数名 (例)説明
strings 文字列リテラルの配列
  • 文字列リテラル と
    ${【変数・式】} が
    交互に出現とみなす
  • 先頭と末尾は文字列リテラル
  • 存在しない部分は、空文字列
...values${【変数・式】} の展開結果
戻り値型説明
任意の型
${【変数・式】}
  • ※「行の最終文字が単独の \ の場合、次の行は結合」が文字列リテラル内で有効 (下記 例 参照)
  • ※次のC言語系の仕様は適用されない為、複数行にまたがる場合は +【加算・文字列結合 演算子】を使用
    「連続した 文字列リテラル は結合」
エスケープシーケンスコード名称・備考シンボル
\b0x0008バックスペースBACKSPACE<BS>
\t0x0009水平タブCHARACTER TABULATION
horizontal tab
<HT>
\n0x000A改行
ラインフィード
LINE FEED
newline
<LF>
\v0x000B垂直タブLINE TABULATION<VT>
\f0x000C改ページ
フォームフィード
FORM FEED<FF>
\r0x000D復帰
キャリッジリターン
CARRIAGE RETURN<CR>
\"0x0022クォーテーションマーク
ダブルクォート
QUOTATION MARK
double quote
"
\'0x0027アポストロフィー
シングルクォート
APOSTROPHE
single quote
'
\\0x005Cバックスラッシュ
円記号
REVERSE SOLIDUS
backslash
\
\n~n8進数\n~n ≦ 0xFF (strictモードでは使用不可)
\xHH0xHH
\uHHHH0xHHHH
\u{H~H} 0xH~H 有効範囲:0xH~H ≦ 0x10FFFF
  • ※H:16進数

var str = "(STRING)";
var str1 = str + '\'文字列1\'\n"文字列2"\n`文字列3`' + str;
var str2 = str + "'文字列1'\n\"文字列2\"\n`文字列3`" + str;
var str3 = `${str}'文字列1'\n"文字列2"
\`文字列3\`` + str;
console.log(str1 === str2); // 出力:true
console.log(str2 === str3); // 出力:true
console.log(str3 === str1); // 出力:true
console.log(str1);
// 出力:(STRING)'文字列1'
//       "文字列2"
//       `文字列3`(STRING)

var str4 = "文字列1\
文字列2";
console.log(str4);
// 出力:文字列1文字列2
var numA = 2;
var numB = 3;
var strT = `${numA} * ${numB} = ${numA * numB}`;
console.log(strT);
// 出力:2 * 3 = 6
/**
* タグ関数
 * @param  {string[]}  strings 文字列リテラルの配列
 * @param  {...string} values  ${【変数・式】} の展開結果
 * @return {string}            展開した文字列
 */
function tag(strings, ...values) {
  console.log(`tag:strings.length = ${strings.length}`);
  for (var i = 0; i < strings.length; i++) {
    console.log(`tag:${i}:[${strings[i]}]`);
  }

  console.log(`tag:values.length = ${values.length}`);
  for (var i = 0; i < values.length; i++) {
    console.log(`tag:${i}:[${values[i]}]`);
  }

  var str = "";
  for (let i = 0; i < values.length; i++) {
    str += strings[i];
    str += values[i];
  }
  str += strings[strings.length - 1];
  return str;
}

var numA = 2;
var numB = 3;
console.log(tag`(${numA} * 10) + ${numB} = ${(numA * 10) + numB}`);
// 出力:tag:strings.length = 4
// 出力:tag:0:[(]
// 出力:tag:1:[ * 10) + ]
// 出力:tag:2:[ = ]
// 出力:tag:3:[]
// 出力:tag:values.length = 3
// 出力:tag:0:[2]
// 出力:tag:1:[3]
// 出力:tag:2:[23]
// 出力:(2 * 10) + 3 = 23

コンストラクタ・型変換

メソッド説明
new String ( [ value ] ) コンストラクタ
String ( [ value ] )型変換

プロパティ

プロパティ説明備考
[数値インデックス]文字アクセス 下記 参照
参考:charAt【指定位置の文字】
String.prototype.constructorコンストラクタ定義下記 参照
length文字数下記 参照
String.prototypeプロトタイプ下記 参照

メソッド

メソッド説明
String.prototype. [@@iterator] () コードポイント値のイテレータオブジェクト作成 (for-of)
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.lastIndexOf ( searchString, position ) 逆方向 文字列検索
String.prototype.localeCompare ( that )
localeCompare ( that [, reserved1 [ , reserved2 ] ] )
文字列比較 (ロケール)
String.prototype.match ( regexp )正規表現検索 (詳細)
String.raw ( template , ...substitutions ) 生の文字列取得
String.prototype.normalize ( [ form ] ) 正規化
String.prototype.repeat ( count ) 文字列の繰り返し
String.prototype.replace ( 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.trim ()両端の空白削除
String.prototype.trimLeft () 左端の空白削除
String.prototype.trimRight () 右端の空白削除
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>)

console.log(String.prototype);
// 出力:String
// 出力:  anchor:anchor()
// 出力:  big:big()
// 出力:  省略
// 出力:  Symbol(Symbol.iterator):[Symbol.iterator]()
// 出力:  __proto__:Object
// 出力:  [[PrimitiveValue]]:""

var str = "あいうえお";
console.log(str[2]);
// 出力:う
console.log(str.constructor);
// 出力:function String() { [native code] }
console.log(str.length);
// 出力:5