Webエンジニア向けプログラミング解説動画をYouTubeで配信中!
▶ チャンネル登録はこちら

【Node.js24.x】String::isWellFormed()メソッドの使い方

isWellFormedメソッドの使い方について、初心者にもわかりやすく解説します。

作成日: 更新日:

基本的な使い方

isWellFormedメソッドは、Stringオブジェクトのインスタンスに対して、その文字列がUTF-16エンコーディングとして適切に形成されているか(well-formedであるか)を検査し、真偽値を返すメソッドです。

JavaScriptの文字列は内部的にUTF-16で表現されますが、Unicodeの文字の中には、1つの16ビットコードユニットでは表現できず、2つの16ビットコードユニットの組み合わせ(これをサロゲートペアと呼びます)で表現されるものがあります。もしこのサロゲートペアが正しく対になっていない場合や、単独で存在する(孤立した)サロゲートコードユニットがある場合、その文字列は「well-formedではない」と見なされます。

このメソッドは、そうした文字列の「健全性」をチェックする目的で使用されます。もし文字列に不正なサロゲートペアが含まれていればfalseを返し、全ての文字がUTF-16のルールに従って適切にエンコードされていればtrueを返します。例えば、外部システムから受け取ったデータやユーザーからの入力文字列が、文字化けの原因となるような不正なエンコーディングを含んでいないかを確認する際に非常に役立ちます。これにより、文字列処理における予期せぬエラーやセキュリティ上の問題を未然に防ぎ、より堅牢なアプリケーションを開発できるようになります。

構文(syntax)

1const wellFormedString = "Hello, world!";
2const notWellFormedString = "This string contains an isolated high-surrogate character: \uD800";
3
4console.log(wellFormedString.isWellFormed());
5console.log(notWellFormedString.isWellFormed());

引数(parameters)

引数なし

引数はありません

戻り値(return)

Boolean

String.prototype.isWellFormed() は、文字列が有効なUTF-16コードユニットのシーケンスであるかどうかを示す真偽値 (Boolean) を返します。

関連コンテンツ

関連プログラミング言語