この記事はインフォ・ラウンジAdvent Calendar 2023 12日目の記事です
前回は @ytkhs さんの古めのAWS CDKv2で作ったAuroraServerlessV2を新しいCDKに対応させたときに悩んだ話でした。
Auroraは名前しか知らないので、内容はさっぱりですが解決できたようでよかったです。
さて本題。
別の会社にいた何年か前に、フォームのかな入力の欄に「ゔ」が入力できず困ったことがありました。
ずっと心のどこかに引っかかっていたのですが、先日解決したので「なんでだったのか」、
「解決方法」をご紹介しようと思います。
なんで「ゔ」が入力できなかったか
正規表現は以下のような感じでした。
検索したりしても大体下記のようなコードが出てくると思います。
/^[ぁ-ん]+$/
平仮名 (Unicodeのブロック) - Wikipediaより引用
この表によると、小さい「ゕ」「ゖ」や繰り返しの「ゝ」「ゞ」、よとりの合字である「ゟ」もひらがなの範疇のようです。
「ゟ」は存在すら知りませんでした。
解決方法
それでは最後の「ん」を書き換えて
/^[ぁ-ゟ]+$/
にすれば解決かな?と思うと、そう簡単でもないようです。
もしひらがなの表の「ゟ」の後に追加されると、修正が必要になります。
そんな時に使えるのが
Unicode プロパティエスケープ \p{}
を使った
/^\p{scx=Hiragana}+$/u
です。
/^[ぁ-ゟ]+$/
同様に鍵括弧や句読点にもマッチしてしまいますので、
その辺は仕様によっても対応がまちまちにもなりますが、
今回の「ゔ」に対応したい、そしてなるべく修正したくないようなものにはマッチするかなと思います。
デモ
See the Pen ひらがなの「ゔ」をチェックに含めたい by ituki_b (@ituki_b) on CodePen.