Useful Regex Patternsはよく使う便利な正規表現を集めたシートシートです。
個人的によく使うものをいくつかピックアップしてみました。
HTMLタグ
HTMLタグにマッチする正規表現です。
/^<([a-z1-6]+)([^<]+)*(?:>(.*)<\/\1>| *\/>)$/
年月日
スラッシュ区切り(dd/mm/yyyy)、ハイフン区切り(dd-mm-yyyy)、スペース区切り(dd mm yyyy)の3つのパターンにマッチする正規表現です。
/^(0?[1-9]|[12][0-9]|3[01])([ \/\-])(0?[1-9]|1[012])\2([0-9][0-9][0-9][0-9])$/
時刻
時刻の24時間表記(hh:nn)にマッチする正規表現です。
/([01]?[0-9]|2[0-3]):[0-5][0-9]/
ユーザー名
アルファベット、数字、ハイフン、アンダースコアを使った3~16文字のユーザー名にマッチする正規表現です。
/^[a-zA-Z0-9_-]{3,16}$/
URLスラッグ
URLのスラッグにマッチする正規表現です。
/^[a-z0-9-]+$/
Emailアドレスにマッチする正規表現です。@が入っているかどうかのシンプルなチェックパターンです。
/^.+@.+$/
URL
URLにマッチする正規表現です。http、httpsに対応しています。
/^(https?:\/\/)?([\da-z\.-]+)\.([a-z\.]{2,6})([\/\w \.-]*)*\/?$/
IPアドレス(iPv4)
IPアドレス(iPv4)にマッチする正規表現です。
/^(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/
IPアドレス(iPv6)
IPアドレス(iPv6)にマッチする正規表現です。
/^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))$/
正の数
プラスの正の数にマッチする正規表現です。小数点有無にも対応しています。
/^\d*\.?\d+$/
負の数
マイナスの負の数にマッチする正規表現です。小数点有無にも対応しています。
/^-\d*\.?\d+$/
正負の数
プラスとマイナス、どちらの数にもマッチする正規表現です。小数点有無にも対応しています。
/^-?\d*\.?\d+$/
YouTube動画のID
YouTube動画のIDにマッチする正規表現です。
/https?:\/\/(?:youtu\.be\/|(?:[a-z]{2,3}\.)?youtube\.com\/watch(?:\?|#\!)v=)([\w-]{11}).*/gi
YouTubeチャンネルのID
YouTubeチャンネルのIDにマッチする正規表現です。
/https?:\/\/(www\.)?youtube.com\/channel\/UC([-_a-z0-9]{22})/i
WordPressショートコード
WordPressのショートコードにマッチする正規表現です。
/^\[([a-z-_0-9]+)([^\[]+)*(?:\](.*)\[\/\1\]|\s+\/\])$/
アメリカ・カナダの郵便番号
アメリカ、カナダの郵便番号にマッチする正規表現です。
/(^\d{5}(-\d{4})?$)|(^[ABCEGHJKLMNPRSTVXY]{1}\d{1}[A-Z]{1} *\d{1}[A-Z]{1}\d{1}$)/