String

String オブジェクトは文字の並びを表したり操作したりするために使用されます。

解説

文字列は、テキスト形式で表現可能なデータを保持するのに便利です。最もよく使われる操作として、文字列の長さをチェックする length プロパティ、 文字列に対する + および += 演算子を用いた文字列の連結、文字列の中の部分文字列の存在や位置をチェックする indexOf() メソッド、部分文字列を取り出す substring() メソッドが挙げられます。

文字列の生成

文字列は文字列リテラルからプリミティブとして、または String/String コンストラクターを使用して文字列として生成することができます。

const string1 = "文字列プリミティブ";
const string2 = 'これも文字列プリミティブ';
const string3 = `別な文字列プリミティブ`;
const string4 = new String("文字列オブジェクト");

文字列プリミティブと文字列オブジェクトは、ほとんどの場合は交換して使用することができます。下記の「文字列プリミティブと String オブジェクト」を参照してください。

文字列リテラルは単一引用符または二重引用符を使用して指定することができ、どちらでも同様に扱われますが、逆引用符文字 ` を使用することもできます。最後の形はテンプレートリテラルを指定し、この形式では式を補完することができます。

文字へのアクセス

文字列内の個々の文字へのアクセス方法には、二通りの方法があります。そのひとつは charAt() メソッドです。

return 'ねこ'.charAt(1)  // "こ" が返される

そしてもうひとつは、文字列を配列のようなオブジェクトとして扱い、数値の添字を用いる方法です。 (ECMAScript 5 で導入)

return 'ねこ'[1]  // "こ" が返される。

ブラケット記法を使用した文字アクセスでは、これらのプロパティに値を設定したり削除したりすることはできません。関連したプロパティを書き込んだり設定したりすることもできません。 (より詳細な情報は Object.defineProperty() を参照してください。)

文字列の比較

C 言語では 文字列の比較の為に strcmp() 関数を用います。 JavaScript では単純に 小なり / 大なり演算子を用います。

let a = 'a'
let b = 'b'
if (a < b) { // true
  console.log(a + ' は ' + b + ' より小さい')
} else if (a > b) {
  console.log(a + ' は ' + b + ' より大きい')
} else {
  console.log(a + ' と ' + b + ' は等しい')
}

String インスタンスから継承される localeCompare() メソッドを使用して同等の結果を得ることもできます。

なお、 a == bab の文字列が等しいかどうかを、通常の大文字小文字を区別して比較します。大文字小文字に関係なく比較したい場合は、次のように関数を使用してください。

function isEqual(str1, str2)
{
    return str1.toUpperCase() === str2.toUpperCase()
} // isEqual

この関数では、特定の UTF-8 文字の変換に問題があるため、小文字の代わりに大文字を使用します。

文字列プリミティブと String オブジェクト

JavaScript では、プリミティブ値の文字列と String オブジェクトの文字列は区別されることに注意してください。 (BooleanNumbers にも同じことが言えます。)

文字列リテラル (二重引用符または単一引用符で示されます)、および String 関数をコンストラクター以外の場面で (すなわち new キーワードを使わずに) 呼び出した場合はプリミティブの文字列になります。 JavaScript では、必要に応じてプリミティブの文字列が自動的に String オブジェクトに変換されるので、プリミティブの文字列に対して String オブジェクトのメソッドを使用することができます。プリミティブの文字列に対して、メソッドの呼び出しやプロパティの参照が行われようとした場合、 JavaScript は自動的にプリミティブの文字列をオブジェクトでラップし、メソッドを呼び出したりプロパティの参照を行ったりします。

let s_prim = 'foo'
let s_obj = new String(s_prim)

console.log(typeof s_prim) // Logs "string"
console.log(typeof s_obj)  // Logs "object"

プリミティブの文字列と String オブジェクトは eval() を使用すると異なる結果となります。 eval に渡されたプリミティブは、ソースコードとして扱われます。 String オブジェクトは他のオブジェクトと同様に、オブジェクトとしてそのままの文字列を返します。

let s1 = '2 + 2'              // 文字列プリミティブを生成
var s2 = new String('2 + 2')  // String オブジェクトを生成
console.log(eval(s1))         // 数値の 4 を返す
console.log(eval(s2))         // 文字列の "2 + 2" を返す

こういった理由から、プリミティブの文字列を期待して実装されたコードは String オブジェクトでうまく動作しないことがあります。しかし、一般的にはこれらの違いを考慮しなければならないことはあまりありません。

なお、 String オブジェクトは valueOf() メソッドを用いることで、プリミティブの文字列に変換することができます。

console.log(eval(s2.valueOf()))  // 数値の 4 を返す

エスケープ表記

通常の文字列とは異なる特殊な文字を表示するためには、エスケープ表記を使用します。

コード 出力
\XXX
(XXX = 1~3桁の8進数、 0377 の範囲)
ISO-8859-1 の文字または U+0000 から U+00FF の間の Unicode コードポイントです。
\' 単一引用符
\" 二重引用符
\\ バックスラッシュ (\文字)
\n 改行
\r 復帰
\v 垂直タブ
\t 水平タブ
\b バックスペース
\f ページ送り
\uXXXX (XXXX = 4桁の16進数、 0x00000xFFFF の範囲) UTF-16 のコード単位 / U+0000 から U+FFFF の間の Unicode コードポイント
\u{X} ... \u{XXXXXX}
(XXXXXXX = 1~6桁の16進数、 0x00x10FFFF の範囲)
UTF-32 のコード単位 / U+0000 から U+10FFFF の間の Unicode コードポイント
\xXX
(XX = 2桁の16進数、 0x000xFF の範囲)
ISO-8859-1 の文字 / U+0000 から U+00FF の間の Unicode コードポイント

長い文字列リテラル

時には、コードに非常に長い文字列が含まれる場合があります。行を延々と長くしたり、エディターに任せて折り返したりするよりも、実際の文字列の内容に影響を与えずに文字列をソースコード内で複数行に分割したいことがあります。これを行うには2つの方法があります。

方法 1

+演算子を使用して、次のように複数の文字列を追加することができます。

let longString = "This is a very long string which needs " +
                 "to wrap across multiple lines because " +
                 "otherwise my code is unreadable."

方法 2

各行の末尾にバックスラッシュ文字 (\) を使用して、文字列が次の行に続くことを示すことができます。バックスラッシュの後に、 (改行を除いて) 空白やその他の文字を置いたり、インデントを置いたりしていないか確認してください。さもないと動作しません。

この形式は以下のようになります。

let longString = "This is a very long string which needs \
to wrap across multiple lines because \
otherwise my code is unreadable."

これらの結果はともに同じ文字列が生成されます。

コンストラクター

String()
新しい String オブジェクトを生成するために使用します。コンストラクターではなく関数として呼び出されたときは型変換を行うので、普通はより有用です。

静的メソッド

String.fromCharCode(num1 [, ...[, numN]])
指定された Unicode 値の列から生成した文字列を返します。
String.fromCodePoint(num1 [, ...[, numN)
指定された Unicode コードポイントの列から生成した文字列を返します。
String.raw()
生のテンプレート文字列から生成した文字列を返します。

インスタンスプロパティ

String.prototype.length
文字列の length を反映します。読み取り専用です。

インスタンスメソッド

String.prototype.charAt(index)
index で指定された位置の文字 (UTF-16 コード 1 つから成ります) を返します。
String.prototype.charCodeAt(index)
index で与えられた位置の文字の UTF-16 の値を示す数を返します。
String.prototype.codePointAt(pos)
pos で指定された位置から始まる UTF-16 エンコードされた際のコードポイントの、コードポイントの値である正の整数を返します。
String.prototype.concat(str [, ...strN ])
2 つ (以上) の文字列を連結し、新しい文字列を返します。
String.prototype.includes(searchString [, position])
文字列中に searchString が含まれているかを返します。
String.prototype.endsWith(searchString [, length])
文字列の末尾に指定された文字列 searchString が含まれているかを返します。
String.prototype.indexOf(searchValue [, fromIndex])
呼び出す String オブジェクト中で、 searchValue が最初に現れる位置を返します。見つからなかった場合は -1 を返します。
String.prototype.lastIndexOf(searchValue [, fromIndex])
呼び出す String オブジェクト中で、 searchValue が最後に現れる位置を返します。見つからない場合は -1 を返します。
String.prototype.localeCompare(compareString [, locales [, options]])
参照文字列 compareString が、並べ替え順において、与えられた文字列の前になるか後になるか、あるいは、同じかどうかを示す数値を返します。
String.prototype.match(regexp)
文字列に対して正規表現 regexp を一致させるために使用されます。
String.prototype.matchAll(regexp)
regexp が一致するものすべてのイテレーターを返します。
String.prototype.normalize([form])
呼び出された文字列の値の Unicode 正規化形式を返します。
String.prototype.padEnd(targetLength [, padString])
現在の文字列の末尾から指定された文字列で埋めた、長さ targetLength 文字の新たな文字列を返します。
String.prototype.padStart(targetLength [, padString])
現在の文字列の先頭から指定した文字列で埋めた、長さ targetLength 文字の新たな文字列を作成します。
String.prototype.repeat(count)
オブジェクトの要素を count 回繰り返した文字列を返します。
String.prototype.replace(searchFor, replaceWith)
searchFor が現れたところを replaceWith で置換するために使用します。 searchFor は文字列または正規表現であり、 replaceWith は文字列または関数です。
String.prototype.replaceAll(searchFor, replaceWith)
searchFor が現れたところすべてを replaceWith で置換するために使用します。 searchFor は文字列または正規表現であり、 replaceWith は文字列または関数です。
String.prototype.search(regexp)
正規表現 regexp と呼び出された文字列が一致するところを検索します。
String.prototype.slice(beginIndex[, endIndex])
文字列の一区間を取り出し、新しい文字列を返します。
String.prototype.split([sep [, limit] ])
呼び出した文字列を、部分文字列 sep が現れるところで分割し、文字列の配列を生成して返します。
String.prototype.startsWith(searchString [, length])
呼び出した文字列が文字列 searchString で開始されているかを判断します。
String.prototype.substr()
文字列において、指定された位置から指定された文字数の文字を返します。
String.prototype.substring(indexStart [, indexEnd])
呼び出した文字列の指定された位置以降 (または区間) にある文字が入った新しい文字列を返します。
String.prototype.toLocaleLowerCase( [locale, ...locales])

文字列内の文字が、現在のロケールに沿って小文字に変換されます。

ほとんどの言語では、これは toLowerCase() と同じものを返します。

String.prototype.toLocaleUpperCase( [locale, ...locales])

文字列内の文字が、現在のロケールに沿って大文字に変換されます。

ほとんどの言語では、これは toUpperCase() と同じものを返します。

String.prototype.toLowerCase()
小文字に変換された文字列の値を呼び出して返します。
String.prototype.toString()
指定されたオブジェクトの文字列を返します。Object.prototype.toString() メソッドを上書きします。
String.prototype.toUpperCase()
大文字に変換された文字列の値を呼び出して返します。
String.prototype.trim()
文字列の先頭と末尾にある空白を削除します。 ECMAScript 5 標準の一部です。
String.prototype.trimStart()
文字列の先頭にある空白を削除します。
String.prototype.trimEnd()
文字列の末尾にある空白を削除します。
String.prototype.valueOf()
指定されたオブジェクトのプリミティブ値を返します。 Object.prototype.valueOf() メソッドを上書きします。
String.prototype.@@iterator()
文字列値のコードポイントを反復処理し、文字列値として各コードポイントを返す、新しい Iterator オブジェクトを返します。

HTML ラッパーメソッド

非推奨です。これらのメソッドは避けてください。

以下のメソッドは、それぞれ、特定の HTML タグでラップされた文字列のコピーを返します。

String.prototype.anchor()
<a name="name"> (ハイパーテキストのターゲット)
String.prototype.big()
<big>
String.prototype.blink()
<blink>
String.prototype.bold()
<b>
String.prototype.fixed()
<tt>
String.prototype.fontcolor()
<font color="color">
String.prototype.fontsize()
<font size="size">
String.prototype.italics()
<i>
String.prototype.link()
<a href="url"> (URL へのリンク)
String.prototype.small()
<small>
String.prototype.strike()
<strike>
String.prototype.sub()
<sub>
String.prototype.sup()
<sup>

文字列変換

String を使用すると、 toString() よりも信頼性の高い代替手段となり、 null, undefined, symbols に対して使用することもできます。

let outputStrings = []
for (let i = 0, n = inputValues.length; i < n; ++i) {
  outputStrings.push(String(inputValues[i]));
}

仕様書

仕様書
ECMAScript (ECMA-262)
String の定義

ブラウザーの互換性

Update compatibility data on GitHub
デスクトップモバイルサーバー
ChromeEdgeFirefoxInternet ExplorerOperaSafariAndroid webviewAndroid 版 ChromeAndroid 版 FirefoxAndroid 版 OperaiOSのSafariSamsung InternetNode.js
StringChrome 完全対応 1Edge 完全対応 12Firefox 完全対応 1IE 完全対応 3Opera 完全対応 3Safari 完全対応 1WebView Android 完全対応 1Chrome Android 完全対応 18Firefox Android 完全対応 4Opera Android 完全対応 10.1Safari iOS 完全対応 1Samsung Internet Android 完全対応 1.0nodejs 完全対応 0.1.100
String() constructorChrome 完全対応 1Edge 完全対応 12Firefox 完全対応 1IE 完全対応 3Opera 完全対応 3Safari 完全対応 1WebView Android 完全対応 1Chrome Android 完全対応 18Firefox Android 完全対応 4Opera Android 完全対応 10.1Safari iOS 完全対応 1Samsung Internet Android 完全対応 1.0nodejs 完全対応 0.1.100
anchor
非推奨
Chrome 完全対応 1Edge 完全対応 12Firefox 完全対応 1
補足
完全対応 1
補足
補足 Starting with version 17, the quotation mark (") is replaced by its HTML reference character (") in strings supplied for the name parameter.
IE 未対応 なしOpera 完全対応 3Safari 完全対応 1WebView Android 完全対応 1Chrome Android 完全対応 18Firefox Android 完全対応 4Opera Android 完全対応 10.1Safari iOS 完全対応 1Samsung Internet Android 完全対応 1.0nodejs 完全対応 0.1.100
big
非推奨
Chrome 完全対応 1Edge 完全対応 12Firefox 完全対応 1IE 完全対応 3Opera 完全対応 3Safari 完全対応 1WebView Android 完全対応 1Chrome Android 完全対応 18Firefox Android 完全対応 4Opera Android 完全対応 10.1Safari iOS 完全対応 1Samsung Internet Android 完全対応 1.0nodejs 完全対応 0.1.100
blink
非推奨
Chrome 完全対応 1Edge 完全対応 12Firefox 完全対応 1IE 完全対応 3Opera 完全対応 3Safari 完全対応 1WebView Android 完全対応 1Chrome Android 完全対応 18Firefox Android 完全対応 4Opera Android 完全対応 10.1Safari iOS 完全対応 1Samsung Internet Android 完全対応 1.0nodejs 完全対応 0.1.100
bold
非推奨
Chrome 完全対応 1Edge 完全対応 12Firefox 完全対応 1IE 完全対応 3Opera 完全対応 3Safari 完全対応 1WebView Android 完全対応 1Chrome Android 完全対応 18Firefox Android 完全対応 4Opera Android 完全対応 10.1Safari iOS 完全対応 1Samsung Internet Android 完全対応 1.0nodejs 完全対応 0.1.100
charAtChrome 完全対応 1Edge 完全対応 12Firefox 完全対応 1IE 完全対応 3Opera 完全対応 3Safari 完全対応 1WebView Android 完全対応 1Chrome Android 完全対応 18Firefox Android 完全対応 4Opera Android 完全対応 10.1Safari iOS 完全対応 1Samsung Internet Android 完全対応 1.0nodejs 完全対応 0.1.100
charCodeAtChrome 完全対応 1Edge 完全対応 12Firefox 完全対応 1IE 完全対応 4Opera 完全対応 4Safari 完全対応 1WebView Android 完全対応 1Chrome Android 完全対応 18Firefox Android 完全対応 4Opera Android 完全対応 10.1Safari iOS 完全対応 1Samsung Internet Android 完全対応 1.0nodejs 完全対応 0.1.100
codePointAtChrome 完全対応 41Edge 完全対応 12Firefox 完全対応 29IE 未対応 なしOpera 完全対応 28Safari 完全対応 10WebView Android 完全対応 41Chrome Android 完全対応 41Firefox Android 完全対応 29Opera Android 完全対応 28Safari iOS 完全対応 10Samsung Internet Android 完全対応 4.0nodejs 完全対応 4.0.0
完全対応 4.0.0
完全対応 0.12
無効
無効 From version 0.12: this feature is behind the --harmony runtime flag.
concatChrome 完全対応 1Edge 完全対応 12Firefox 完全対応 1IE 完全対応 4Opera 完全対応 4Safari 完全対応 1WebView Android 完全対応 1Chrome Android 完全対応 18Firefox Android 完全対応 4Opera Android 完全対応 10.1Safari iOS 完全対応 1Samsung Internet Android 完全対応 1.0nodejs 完全対応 0.1.100
endsWithChrome 完全対応 41Edge 完全対応 12Firefox 完全対応 17IE 未対応 なしOpera 完全対応 28Safari 完全対応 9WebView Android 完全対応 ≤37Chrome Android 完全対応 36Firefox Android 完全対応 17Opera Android 完全対応 24Safari iOS 完全対応 9Samsung Internet Android 完全対応 3.0nodejs 完全対応 4.0.0
完全対応 4.0.0
完全対応 0.12
無効
無効 From version 0.12: this feature is behind the --harmony runtime flag.
fixed
非推奨
Chrome 完全対応 1Edge 完全対応 12Firefox 完全対応 1IE 完全対応 3Opera 完全対応 3Safari 完全対応 1WebView Android 完全対応 1Chrome Android 完全対応 18Firefox Android 完全対応 4Opera Android 完全対応 10.1Safari iOS 完全対応 1Samsung Internet Android 完全対応 1.0nodejs 完全対応 0.1.100
fontcolor
非推奨
Chrome 完全対応 1Edge 完全対応 12Firefox 完全対応 1IE 完全対応 3Opera 完全対応 3Safari 完全対応 1WebView Android 完全対応 1Chrome Android 完全対応 18Firefox Android 完全対応 4Opera Android 完全対応 10.1Safari iOS 完全対応 1Samsung Internet Android 完全対応 1.0nodejs 完全対応 0.1.100
fontsize
非推奨
Chrome 完全対応 1Edge 完全対応 12Firefox 完全対応 1IE 完全対応 3Opera 完全対応 3Safari 完全対応 1WebView Android 完全対応 1Chrome Android 完全対応 18Firefox Android 完全対応 4Opera Android 完全対応 10.1Safari iOS 完全対応 1Samsung Internet Android 完全対応 1.0nodejs 完全対応 0.1.100
fromCharCodeChrome 完全対応 1Edge 完全対応 12Firefox 完全対応 1IE 完全対応 4Opera 完全対応 4Safari 完全対応 1WebView Android 完全対応 1Chrome Android 完全対応 18Firefox Android 完全対応 4Opera Android 完全対応 10.1Safari iOS 完全対応 1Samsung Internet Android 完全対応 1.0nodejs 完全対応 0.1.100
fromCodePointChrome 完全対応 41Edge 完全対応 12Firefox 完全対応 29IE 未対応 なしOpera 完全対応 28Safari 完全対応 10WebView Android 完全対応 41Chrome Android 完全対応 41Firefox Android 完全対応 29Opera Android 完全対応 28Safari iOS 完全対応 10Samsung Internet Android 完全対応 4.0nodejs 完全対応 4.0.0
完全対応 4.0.0
完全対応 0.12
無効
無効 From version 0.12: this feature is behind the --harmony runtime flag.
includesChrome 完全対応 41Edge 完全対応 12Firefox 完全対応 40
完全対応 40
未対応 18 — 48
代替名
代替名 非標準の名前 contains を使用しています。
IE 未対応 なしOpera 完全対応 28Safari 完全対応 9WebView Android 完全対応 41Chrome Android 完全対応 41Firefox Android 完全対応 40
完全対応 40
未対応 18 — 48
代替名
代替名 非標準の名前 contains を使用しています。
Opera Android 完全対応 28Safari iOS 完全対応 9Samsung Internet Android 完全対応 4.0nodejs 完全対応 4.0.0
indexOfChrome 完全対応 1Edge 完全対応 12Firefox 完全対応 1IE 完全対応 3Opera 完全対応 3Safari 完全対応 1WebView Android 完全対応 1Chrome Android 完全対応 18Firefox Android 完全対応 4Opera Android 完全対応 10.1Safari iOS 完全対応 1Samsung Internet Android 完全対応 1.0nodejs 完全対応 0.1.100
italics
非推奨
Chrome 完全対応 1Edge 完全対応 12Firefox 完全対応 1IE 完全対応 3Opera 完全対応 3Safari 完全対応 1WebView Android 完全対応 1Chrome Android 完全対応 18Firefox Android 完全対応 4Opera Android 完全対応 10.1Safari iOS 完全対応 1Samsung Internet Android 完全対応 1.0nodejs 完全対応 0.1.100
lastIndexOfChrome 完全対応 1Edge 完全対応 12Firefox 完全対応 1IE 完全対応 6Opera 完全対応 3Safari 完全対応 1WebView Android 完全対応 1Chrome Android 完全対応 18Firefox Android 完全対応 4Opera Android 完全対応 10.1Safari iOS 完全対応 1Samsung Internet Android 完全対応 1.0nodejs 完全対応 0.1.100
lengthChrome 完全対応 1Edge 完全対応 12Firefox 完全対応 1IE 完全対応 3Opera 完全対応 3Safari 完全対応 1WebView Android 完全対応 1Chrome Android 完全対応 18Firefox Android 完全対応 4Opera Android 完全対応 10.1Safari iOS 完全対応 1Samsung Internet Android 完全対応 1.0nodejs 完全対応 0.1.100
link
非推奨
Chrome 完全対応 1Edge 完全対応 12Firefox 完全対応 1IE 完全対応 3Opera 完全対応 3Safari 完全対応 1WebView Android 完全対応 1Chrome Android 完全対応 18Firefox Android 完全対応 4Opera Android 完全対応 10.1Safari iOS 完全対応 1Samsung Internet Android 完全対応 1.0nodejs 完全対応 0.1.100
localeCompareChrome 完全対応 1Edge 完全対応 12Firefox 完全対応 1IE 完全対応 5.5Opera 完全対応 7Safari 完全対応 3WebView Android 完全対応 1Chrome Android 完全対応 18Firefox Android 完全対応 4Opera Android 完全対応 10.1Safari iOS 完全対応 1Samsung Internet Android 完全対応 1.0nodejs 完全対応 0.1.100
matchChrome 完全対応 1Edge 完全対応 12Firefox 完全対応 1IE 完全対応 4Opera 完全対応 4Safari 完全対応 1WebView Android 完全対応 1Chrome Android 完全対応 18Firefox Android 完全対応 4Opera Android 完全対応 10.1Safari iOS 完全対応 1Samsung Internet Android 完全対応 1.0nodejs 完全対応 0.1.100
matchAllChrome 完全対応 73Edge 完全対応 79Firefox 完全対応 67IE 未対応 なしOpera 完全対応 60Safari 完全対応 13WebView Android 完全対応 73Chrome Android 完全対応 73Firefox Android 完全対応 67Opera Android 完全対応 52Safari iOS 完全対応 13Samsung Internet Android 未対応 なしnodejs 完全対応 12.0.0
normalizeChrome 完全対応 34Edge 完全対応 12Firefox 完全対応 31IE 未対応 なしOpera 完全対応 21Safari 完全対応 10WebView Android 未対応 なしChrome Android 完全対応 34Firefox Android 完全対応 31Opera Android 完全対応 21Safari iOS 完全対応 10Samsung Internet Android 完全対応 2.0nodejs 完全対応 0.12
padEndChrome 完全対応 57Edge 完全対応 15Firefox 完全対応 48IE 未対応 なしOpera 完全対応 44Safari 完全対応 10WebView Android 完全対応 57Chrome Android 完全対応 57Firefox Android 完全対応 48Opera Android 完全対応 43Safari iOS 完全対応 10Samsung Internet Android 完全対応 7.0nodejs 完全対応 8.0.0
完全対応 8.0.0
完全対応 7.0.0
無効
無効 From version 7.0.0: this feature is behind the --harmony runtime flag.
padStartChrome 完全対応 57Edge 完全対応 15Firefox 完全対応 48IE 未対応 なしOpera 完全対応 44Safari 完全対応 10WebView Android 完全対応 57Chrome Android 完全対応 57Firefox Android 完全対応 48Opera Android 完全対応 43Safari iOS 完全対応 10Samsung Internet Android 完全対応 7.0nodejs 完全対応 8.0.0
完全対応 8.0.0
完全対応 7.0.0
無効
無効 From version 7.0.0: this feature is behind the --harmony runtime flag.
rawChrome 完全対応 41Edge 完全対応 12Firefox 完全対応 34IE 未対応 なしOpera 未対応 なしSafari 完全対応 10WebView Android 未対応 なしChrome Android 完全対応 41Firefox Android 完全対応 34Opera Android 未対応 なしSafari iOS 完全対応 10Samsung Internet Android 完全対応 4.0nodejs 完全対応 4.0.0
repeatChrome 完全対応 41Edge 完全対応 12Firefox 完全対応 24IE 未対応 なしOpera 完全対応 28Safari 完全対応 9WebView Android 未対応 なしChrome Android 完全対応 36Firefox Android 完全対応 24Opera Android 完全対応 28Safari iOS 完全対応 9Samsung Internet Android 完全対応 3.0nodejs 完全対応 4.0.0
完全対応 4.0.0
完全対応 0.12
無効
無効 From version 0.12: this feature is behind the --harmony runtime flag.
replaceChrome 完全対応 1Edge 完全対応 12Firefox 完全対応 1IE 完全対応 4Opera 完全対応 4Safari 完全対応 1WebView Android 完全対応 1Chrome Android 完全対応 18Firefox Android 完全対応 4Opera Android 完全対応 10.1Safari iOS 完全対応 1Samsung Internet Android 完全対応 1.0nodejs 完全対応 0.1.100
replaceAllChrome 完全対応 85Edge 完全対応 85Firefox 完全対応 77IE 未対応 なしOpera 完全対応 71Safari 完全対応 13.1WebView Android 完全対応 85Chrome Android 完全対応 85Firefox Android 完全対応 79Opera Android 完全対応 60Safari iOS 完全対応 13.4Samsung Internet Android 未対応 なしnodejs 未対応 なし
searchChrome 完全対応 1Edge 完全対応 12Firefox 完全対応 1IE 完全対応 4Opera 完全対応 4Safari 完全対応 1WebView Android 完全対応 1Chrome Android 完全対応 18Firefox Android 完全対応 4Opera Android 完全対応 10.1Safari iOS 完全対応 1Samsung Internet Android 完全対応 1.0nodejs 完全対応 0.1.100
sliceChrome 完全対応 1Edge 完全対応 12Firefox 完全対応 1IE 完全対応 4Opera 完全対応 4Safari 完全対応 1WebView Android 完全対応 1Chrome Android 完全対応 18Firefox Android 完全対応 4Opera Android 完全対応 10.1Safari iOS 完全対応 1Samsung Internet Android 完全対応 1.0nodejs 完全対応 0.1.100
small
非推奨
Chrome 完全対応 1Edge 完全対応 12Firefox 完全対応 1IE 完全対応 3Opera 完全対応 3Safari 完全対応 1WebView Android 完全対応 1Chrome Android 完全対応 18Firefox Android 完全対応 4Opera Android 完全対応 10.1Safari iOS 完全対応 1Samsung Internet Android 完全対応 1.0nodejs 完全対応 0.1.100
splitChrome 完全対応 1Edge 完全対応 12Firefox 完全対応 1IE 完全対応 4Opera 完全対応 3Safari 完全対応 1WebView Android 完全対応 1Chrome Android 完全対応 18Firefox Android 完全対応 4Opera Android 完全対応 10.1Safari iOS 完全対応 1Samsung Internet Android 完全対応 1.0nodejs 完全対応 0.1.100
startsWithChrome 完全対応 41Edge 完全対応 12Firefox 完全対応 17IE 未対応 なしOpera 完全対応 28Safari 完全対応 9WebView Android 完全対応 ≤37Chrome Android 完全対応 36Firefox Android 完全対応 17Opera Android 完全対応 24Safari iOS 完全対応 9Samsung Internet Android 完全対応 3.0nodejs 完全対応 4.0.0
完全対応 4.0.0
完全対応 0.12
無効
無効 From version 0.12: this feature is behind the --harmony runtime flag.
strike
非推奨
Chrome 完全対応 1Edge 完全対応 12Firefox 完全対応 1IE 完全対応 3Opera 完全対応 3Safari 完全対応 1WebView Android 完全対応 1Chrome Android 完全対応 18Firefox Android 完全対応 4Opera Android 完全対応 10.1Safari iOS 完全対応 1Samsung Internet Android 完全対応 1.0nodejs 完全対応 0.1.100
sub
非推奨
Chrome 完全対応 1Edge 完全対応 12Firefox 完全対応 1IE 完全対応 3Opera 完全対応 3Safari 完全対応 1WebView Android 完全対応 1Chrome Android 完全対応 18Firefox Android 完全対応 4Opera Android 完全対応 10.1Safari iOS 完全対応 1Samsung Internet Android 完全対応 1.0nodejs 完全対応 0.1.100
substr
非推奨
Chrome 完全対応 1Edge 完全対応 12Firefox 完全対応 1IE 完全対応 4Opera 完全対応 4Safari 完全対応 1WebView Android 完全対応 1Chrome Android 完全対応 18Firefox Android 完全対応 4Opera Android 完全対応 10.1Safari iOS 完全対応 1Samsung Internet Android 完全対応 1.0nodejs 完全対応 0.1.100
substringChrome 完全対応 1Edge 完全対応 12Firefox 完全対応 1IE 完全対応 3Opera 完全対応 3Safari 完全対応 1WebView Android 完全対応 1Chrome Android 完全対応 18Firefox Android 完全対応 4Opera Android 完全対応 10.1Safari iOS 完全対応 1Samsung Internet Android 完全対応 1.0nodejs 完全対応 0.1.100
sup
非推奨
Chrome 完全対応 1Edge 完全対応 12Firefox 完全対応 1IE 完全対応 3Opera 完全対応 3Safari 完全対応 1WebView Android 完全対応 1Chrome Android 完全対応 18Firefox Android 完全対応 4Opera Android 完全対応 10.1Safari iOS 完全対応 1Samsung Internet Android 完全対応 1.0nodejs 完全対応 0.1.100
toLocaleLowerCaseChrome 完全対応 1Edge 完全対応 12Firefox 完全対応 1IE 完全対応 5.5Opera 完全対応 4Safari 完全対応 1.3WebView Android 完全対応 1Chrome Android 完全対応 18Firefox Android 完全対応 4Opera Android 完全対応 10.1Safari iOS 完全対応 1Samsung Internet Android 完全対応 1.0nodejs 完全対応 0.1.100
toLocaleUpperCaseChrome 完全対応 1Edge 完全対応 12Firefox 完全対応 1IE 完全対応 5.5Opera 完全対応 4Safari 完全対応 1.3WebView Android 完全対応 1Chrome Android 完全対応 18Firefox Android 完全対応 4Opera Android 完全対応 10.1Safari iOS 完全対応 1Samsung Internet Android 完全対応 1.0nodejs 完全対応 0.1.100
toLowerCaseChrome 完全対応 1Edge 完全対応 12Firefox 完全対応 1IE 完全対応 3Opera 完全対応 3Safari 完全対応 1WebView Android 完全対応 1Chrome Android 完全対応 18Firefox Android 完全対応 4Opera Android 完全対応 10.1Safari iOS 完全対応 1Samsung Internet Android 完全対応 1.0nodejs 完全対応 0.1.100
toSource
非標準
Chrome 未対応 なしEdge 未対応 なしFirefox 未対応 1 — 74
補足
未対応 1 — 74
補足
補足 Starting in Firefox 74, toSource() is no longer available for use by web content. It is still allowed for internal and privileged code.
IE 未対応 なしOpera 未対応 なしSafari 未対応 なしWebView Android 未対応 なしChrome Android 未対応 なしFirefox Android 完全対応 4Opera Android 未対応 なしSafari iOS 未対応 なしSamsung Internet Android 未対応 なしnodejs 未対応 なし
toStringChrome 完全対応 1Edge 完全対応 12Firefox 完全対応 1IE 完全対応 3Opera 完全対応 3Safari 完全対応 1WebView Android 完全対応 1Chrome Android 完全対応 18Firefox Android 完全対応 4Opera Android 完全対応 10.1Safari iOS 完全対応 1Samsung Internet Android 完全対応 1.0nodejs 完全対応 0.1.100
toUpperCaseChrome 完全対応 1Edge 完全対応 12Firefox 完全対応 1IE 完全対応 3Opera 完全対応 3Safari 完全対応 1WebView Android 完全対応 1Chrome Android 完全対応 18Firefox Android 完全対応 4Opera Android 完全対応 10.1Safari iOS 完全対応 1Samsung Internet Android 完全対応 1.0nodejs 完全対応 0.1.100
trimChrome 完全対応 4Edge 完全対応 12Firefox 完全対応 3.5IE 完全対応 9Opera 完全対応 10.5Safari 完全対応 5WebView Android 完全対応 ≤37Chrome Android 完全対応 18Firefox Android 完全対応 4Opera Android 完全対応 11Safari iOS 完全対応 5Samsung Internet Android 完全対応 1.0nodejs 完全対応 0.1.100
trimEndChrome 完全対応 66
完全対応 66
完全対応 4
代替名
代替名 非標準の名前 trimRight を使用しています。
Edge 完全対応 12
代替名
完全対応 12
代替名
代替名 非標準の名前 trimRight を使用しています。
Firefox 完全対応 61
完全対応 61
完全対応 3.5
代替名
代替名 非標準の名前 trimRight を使用しています。
IE 未対応 なしOpera 完全対応 53
完全対応 53
完全対応 15
代替名
代替名 非標準の名前 trimRight を使用しています。
Safari 完全対応 12WebView Android 完全対応 66
完全対応 66
完全対応 ≤37
代替名
代替名 非標準の名前 trimRight を使用しています。
Chrome Android 完全対応 66
完全対応 66
完全対応 18
代替名
代替名 非標準の名前 trimRight を使用しています。
Firefox Android 完全対応 61
完全対応 61
完全対応 4
代替名
代替名 非標準の名前 trimRight を使用しています。
Opera Android 完全対応 47
完全対応 47
完全対応 14
代替名
代替名 非標準の名前 trimRight を使用しています。
Safari iOS 完全対応 12Samsung Internet Android 完全対応 9.0
完全対応 9.0
完全対応 1.0
代替名
代替名 非標準の名前 trimRight を使用しています。
nodejs 完全対応 10.0.0
完全対応 10.0.0
完全対応 0.12
代替名
代替名 非標準の名前 trimRight を使用しています。
trimStartChrome 完全対応 66
完全対応 66
完全対応 4
代替名
代替名 非標準の名前 trimLeft を使用しています。
Edge 完全対応 12
代替名
完全対応 12
代替名
代替名 非標準の名前 trimLeft を使用しています。
Firefox 完全対応 61
完全対応 61
完全対応 3.5
代替名
代替名 非標準の名前 trimLeft を使用しています。
IE 未対応 なしOpera 完全対応 53
完全対応 53
完全対応 15
代替名
代替名 非標準の名前 trimLeft を使用しています。
Safari 完全対応 12WebView Android 完全対応 66
完全対応 66
完全対応 ≤37
代替名
代替名 非標準の名前 trimLeft を使用しています。
Chrome Android 完全対応 66
完全対応 66
完全対応 18
代替名
代替名 非標準の名前 trimLeft を使用しています。
Firefox Android 完全対応 61
完全対応 61
完全対応 4
代替名
代替名 非標準の名前 trimLeft を使用しています。
Opera Android 完全対応 47
完全対応 47
完全対応 14
代替名
代替名 非標準の名前 trimLeft を使用しています。
Safari iOS 完全対応 12Samsung Internet Android 完全対応 9.0
完全対応 9.0
完全対応 1.0
代替名
代替名 非標準の名前 trimLeft を使用しています。
nodejs 完全対応 10.0.0
完全対応 10.0.0
完全対応 0.12
代替名
代替名 非標準の名前 trimLeft を使用しています。
Unicode code point escapes \u{xxxxxx}Chrome 完全対応 1Edge 完全対応 12Firefox 完全対応 40IE 完全対応 4Opera 完全対応 4Safari 完全対応 1WebView Android 完全対応 1Chrome Android 完全対応 18Firefox Android 完全対応 40Opera Android 完全対応 10.1Safari iOS 完全対応 1Samsung Internet Android 完全対応 1.0nodejs 完全対応 0.1.100
valueOfChrome 完全対応 1Edge 完全対応 12Firefox 完全対応 1IE 完全対応 4Opera 完全対応 3Safari 完全対応 1WebView Android 完全対応 1Chrome Android 完全対応 18Firefox Android 完全対応 4Opera Android 完全対応 10.1Safari iOS 完全対応 1Samsung Internet Android 完全対応 1.0nodejs 完全対応 0.1.100
@@iteratorChrome 完全対応 38Edge 完全対応 12Firefox 完全対応 36
完全対応 36
未対応 27 — 36
補足 代替名
補足 A placeholder property named @@iterator is used.
代替名 非標準の名前 @@iterator を使用しています。
未対応 17 — 27
補足 代替名
補足 A placeholder property named iterator is used.
代替名 非標準の名前 iterator を使用しています。
IE 未対応 なしOpera 完全対応 25Safari 完全対応 9WebView Android 完全対応 38Chrome Android 完全対応 38Firefox Android 完全対応 36
完全対応 36
未対応 27 — 36
補足 代替名
補足 A placeholder property named @@iterator is used.
代替名 非標準の名前 @@iterator を使用しています。
未対応 17 — 27
補足 代替名
補足 A placeholder property named iterator is used.
代替名 非標準の名前 iterator を使用しています。
Opera Android 完全対応 25Safari iOS 完全対応 9Samsung Internet Android 完全対応 3.0nodejs 完全対応 0.12

凡例

完全対応  
完全対応
未対応  
未対応
非標準。ブラウザー間の互換性が低い可能性があります。
非標準。ブラウザー間の互換性が低い可能性があります。
非推奨。新しいウェブサイトでは使用しないでください。
非推奨。新しいウェブサイトでは使用しないでください。
実装ノートを参照してください。
実装ノートを参照してください。
ユーザーが明示的にこの機能を有効にしなければなりません。
ユーザーが明示的にこの機能を有効にしなければなりません。
非標準の名前を使用しています。
非標準の名前を使用しています。

関連情報