LoginSignup
3
1

何年か越しに正規表現の「ゔ」の謎が解けた件

Last updated at Posted at 2023-12-11

この記事はインフォ・ラウンジAdvent Calendar 2023 12日目の記事です

前回は @ytkhs さんの古めのAWS CDKv2で作ったAuroraServerlessV2を新しいCDKに対応させたときに悩んだ話でした。
Auroraは名前しか知らないので、内容はさっぱりですが解決できたようでよかったです。


さて本題。
別の会社にいた何年か前に、フォームのかな入力の欄に「ゔ」が入力できず困ったことがありました。
ずっと心のどこかに引っかかっていたのですが、先日解決したので「なんでだったのか」、
「解決方法」をご紹介しようと思います。

なんで「ゔ」が入力できなかったか

正規表現は以下のような感じでした。
検索したりしても大体下記のようなコードが出てくると思います。

/^[ぁ-ん]+$/

これがそもそも「ゔ」が含まれていない正規表現のようです。
image.png

平仮名 (Unicodeのブロック) - Wikipediaより引用

この表によると、小さい「ゕ」「ゖ」や繰り返しの「ゝ」「ゞ」、よとりの合字である「ゟ」もひらがなの範疇のようです。
「ゟ」は存在すら知りませんでした。

解決方法

それでは最後の「ん」を書き換えて

/^[ぁ-ゟ]+$/

にすれば解決かな?と思うと、そう簡単でもないようです。
もしひらがなの表の「ゟ」の後に追加されると、修正が必要になります。

そんな時に使えるのが

Unicode プロパティエスケープ \p{}

を使った

/^\p{scx=Hiragana}+$/u

です。

/^[ぁ-ゟ]+$/

同様に鍵括弧や句読点にもマッチしてしまいますので、
その辺は仕様によっても対応がまちまちにもなりますが、
今回の「ゔ」に対応したい、そしてなるべく修正したくないようなものにはマッチするかなと思います。

デモ

See the Pen ひらがなの「ゔ」をチェックに含めたい by ituki_b (@ituki_b) on CodePen.

3
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
1