toString【文字列変換】
valueOf【String型変換】
toLowerCase【小文字変換】
toUpperCase【大文字変換】
toLocaleLowerCase【小文字変換 (現在ロケール)】
toLocaleUpperCase【大文字変換 (現在ロケール)】
isWellFormed【サロゲートペア適正チェック】
toWellFormed【サロゲートペア適正変換】
String.prototype.toString【文字列変換】
メモ
概要
- オブジェクトを文字列に変換
外部リンク
- ECMA-262 (英語)
String.prototype.toString ( ) ES2024 (15) ES2023 (14) ES2022 (13)
構文
string.toString()
文字列
例
let str = new String("あいうえお");
console.log( str ); // 出力:String { "あいうえお" }
console.log( str.toString() ); // 出力:あいうえお
str = new String(NaN);
console.log( str.toString() ); // 出力:NaN
str = new String(Infinity);
console.log( str.toString() ); // 出力:Infinity
str = new String(undefined);
console.log( str.toString() ); // 出力:undefined
String.prototype.valueOf【String型変換】
メモ
概要
- オブジェクトを文字列に変換
外部リンク
- ECMA-262 (英語)
String.prototype.valueOf ( ) ES2024 (15) ES2023 (14) ES2022 (13)
構文
string.valueOf()
文字列
例
let str = new String("あいうえお");
console.log( str ); // 出力:String { "あいうえお" }
console.log( str.valueOf() ); // 出力:あいうえお
str = new String(NaN);
console.log( str.valueOf() ); // 出力:NaN
str = new String(Infinity);
console.log( str.valueOf() ); // 出力:Infinity
str = new String(undefined);
console.log( str.valueOf() ); // 出力:undefined
String.prototype.toLowerCase【小文字変換】
String.prototype.toUpperCase【大文字変換】
メモ
概要
- 小文字または大文字に変換
- 元の文字列は変更なし
- 現在ロケールにおける変換
外部リンク
- ECMA-262 (英語)
String.prototype.toLowerCase ( ) ES2024 (15) ES2023 (14) ES2022 (13) String.prototype.toUpperCase ( ) ES2024 (15) ES2023 (14) ES2022 (13)
構文
string.toLowerCase()
string.toUpperCase()
変換後の文字列
例
const str = "xyzXYZxyzXYZ";
console.log( str.toLowerCase() ); // 出力:xyzxyzxyzxyz
console.log( str.toUpperCase() ); // 出力:XYZXYZXYZXYZ
console.log( str ); // 出力:xyzXYZxyzXYZ
String.prototype.toLocaleLowerCase【小文字変換 (現在ロケール)】
String.prototype.toLocaleUpperCase【大文字変換 (現在ロケール)】
メモ
概要
- 現在のロケールに従い小文字または大文字に変換
- 元の文字列は変更なし
- 変換処理
- 日本語・その他多くの言語:toLowerCase【小文字変換】 ・toUpperCase【大文字変換】と同等
- トルコ語等の一部:相違
外部リンク
- ECMA-262 (英語)
String.prototype.toLocaleLowerCase ( )
String.prototype.toLocaleLowerCase ( [ reserved1 [ , reserved2 ] ] )ES2024 (15) ES2023 (14) ES2022 (13) String.prototype.toLocaleUpperCase ( )
String.prototype.toLocaleUpperCase ([ reserved1 [ , reserved2 ] ] )ES2024 (15) ES2023 (14) ES2022 (13)
構文
string.toLocaleLowerCase()
string.toLocaleUpperCase()
string.toLocaleLowerCase( [reserved1[, reserved2]] )
string.toLocaleUpperCase( [reserved1[, reserved2]] )
変換後の文字列
reserved1リザーブ (実装依存)
reserved2リザーブ (実装依存)
例
const str = "xyzXYZxyzXYZ";
console.log( str.toLocaleLowerCase() ); // 出力:xyzxyzxyzxyz
console.log( str.toLocaleUpperCase() ); // 出力:XYZXYZXYZXYZ
console.log( str ); // 出力:xyzXYZxyzXYZ
String.prototype.isWellFormed【サロゲートペア適正チェック】
String.prototype.toWellFormed【サロゲートペア適正変換】
メモ
概要
- サロゲートペア適正処理
- isWellFormed【サロゲートペア適正チェック】:不正な文字列チェック (サロゲートペアが不正な文字を含む)
- toWellFormed【サロゲートペア適正変換】:適正文字列に変換 (不正なサロゲートペアを U+FFFD に変換)
関連
外部リンク
- ECMA-262 (英語)
String.prototype.isWellFormed ( ) ES2024 (15) ES2023 (14) ES2022 (13) String.prototype.toWellFormed ( ) ES2024 (15) ES2023 (14) ES2022 (13)
構文
string.isWellFormed( )
サロゲートペア適正チェック結果 (true:適正 / false:不正)
string.toWellFormed( )
変換後の文字列 (不正サロゲートペアは 0xFFFD に変換)
例
// ハイサロゲート:U+D800 〜 U+DBFF
// ローサロゲート:U+DC00 〜 U+DFFF
const strings = [
// サロゲートペア不正
'abc\uD800xyz', // ハイサロゲートのみ
'abc\uDFFFxyz', // ローサロゲートのみ
'abc\uD800\uDBFFxyz', // ハイサロゲート連続
'abc\uDC00\uDFFFxyz', // ローサロゲート連続
'abc\uDC00\uDBFFxyz', // ハイサロゲート・ローサロゲート 逆転
// サロゲートペア適正
'子を叱る。', // 叱:U+53F1
'子を𠮟る。', // 𠮟:U+20B9F (0xD842 0xDF9F) 異体字
'\uD83C\uDFF4\u200D\u2620\uFE0F', // 絵文字 (海賊旗)
];
for (const str of strings) {
console.log(str.isWellFormed(), str, str.toWellFormed());
}
// 出力:
// false 'abc\uD800xyz' 'abc�xyz'
// false 'abc\uDFFFxyz' 'abc�xyz'
// false 'abc\uD800\uDBFFxyz' 'abc��xyz'
// false 'abc\uDC00\uDFFFxyz' 'abc��xyz'
// false 'abc\uDC00\uDBFFxyz' 'abc��xyz'
// true '子を叱る。' '子を叱る。'
// true '子を𠮟る。' '子を𠮟る。'
// true '🏴☠️' '🏴☠️'