現在入門書でJavaScriptを学んでいます。
RegExpオブジェクトの項で、
JavaScript
1let str = '叱ります'; 2console.log(str.match(/^.ります$/gu));
というコードがあり、
uフラグを削除すると、サロゲートペアが正しく認識できなくなり、結果はnullとなります。
とありましたが、実際にuフラグを削除してみましたが、結果がnull
となりませんでした。
こちらのサイトを参考にして他のパターンでuフラグを削除して実行してみましたが、
JavaScript
1let str = '叱ります'; 2console.log(str.match(/\p{L}/g));
こちらは結果null
となりました。uフラグがないのでこれは想定の結果でした。
しかし、上記写真のconsole.log(str2.match(/^.ります$/g));
の中の.
を削除して実行するとこれはnull
となりました。もとの写真のコードでは、uフラグなしでも['叱ります']
という実行結果であったため、同じ結果が出ると考えていました。
そこで質問なのですが、uフラグがなくても.
をつけるとサロゲートペアを認識してしまうということでしょうか? この入門書には正規表現パターンの.
の説明欄に
任意の1文字に一致
とはあるのですが、サロゲートペアを認識するというふうには書かれていなかったので、混乱しています。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2020/05/31 09:55 編集
2020/05/31 10:19