Last active
January 29, 2025 11:07
-
Star
(267)
You must be signed in to star a gist -
Fork
(16)
You must be signed in to fork a gist
-
-
Save nashirox/38323d5b51063ede1d41 to your computer and use it in GitHub Desktop.
Rubyのバリデーション用正規表現集
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# | |
# 数字 | |
# | |
# 全て数値(全角) | |
/\A[0-9]+\z/ | |
# 全て数値(半角) | |
/\A[0-9]+\z/ | |
# 全て数値(全角,半角) | |
/\A[0-90-9]+\z/ | |
# 全て全角数値(マイナス、小数点) | |
/\A[ー]?[0-9]+(\.[0-9]+)?\z/ | |
# 全て半角数値(マイナス、小数点) | |
/\A[-]?[0-9]+(\.[0-9]+)?\z/ | |
# | |
# 文字 | |
# | |
# 半角アルファベット(小文字) | |
/\A[a-z]+\z/ | |
# 半角アルファベット(大文字) | |
/\A[A-Z]+\z/ | |
# 半角アルファベット(大文字・小文字) | |
/\A[a-zA-Z]+\z/ | |
# 半角アルファベット(小文字・数値) | |
/\A[a-z0-9]+\z/ | |
# 半角アルファベット(大文字・数値) | |
/\A[A-Z0-9]+\z/ | |
# 半角アルファベット(大文字・小文字・数値) | |
/\A[a-zA-Z0-9]+\z/ | |
# 全角ひらがな | |
/\A[ぁ-んー-]+\z/ | |
# 全角カタカナ | |
/\A[ァ-ヶー-]+\z/ | |
# 全角ひらがな、カタカナ | |
/\A[ぁ-んァ-ヶー-]+\z/ | |
# 半角カナ | |
/\A[ァ-ン゙゚]+\z/ | |
# 漢字 | |
/\A[一-龥]+\z/ | |
# 全角ひらがな、漢字 | |
/\A[一-龥ぁ-ん]/ | |
# 全角ひらがな、全角カタカナ、漢字 | |
/\A[ぁ-んァ-ン一-龥]/ | |
# 全角ひらがな、全角カタカナ、漢字(鬼車) | |
/\A(?:\p{Hiragana}|\p{Katakana}|[ー-]|[一-龠々])+\z/ | |
# | |
# 郵便番号 | |
# | |
# 郵便番号(ハイフンあり3桁・5桁・7桁) | |
/\A\d{3}[-]\d{4}$|^\d{3}[-]\d{2}$|^\d{3}\z/ | |
# 郵便番号(ハイフンあり5桁) | |
/\A\d{3}[-]\d{2}\z/ | |
# 郵便番号(ハイフンあり7桁) | |
/\A\d{3}[-]\d{4}\z/ | |
# 郵便番号(ハイフンなし3桁) | |
/\A\d{3}\z/ | |
# 郵便番号(ハイフンなし5桁) | |
/\A\d{5}\z/ | |
# 郵便番号(ハイフンなし7桁) | |
/\A\d{7}\z/ | |
# 郵便番号(ハイフンあり・なし両方) | |
/\A\d{3}[-]\d{4}$|^\d{3}[-]\d{2}$|^\d{3}$|^\d{5}$|^\d{7}\z/ | |
# | |
# 電話番号 | |
# | |
# 電話番号(ハイフンなし10桁) | |
/\A\d{10}\z/ | |
# 携帯番号(ハイフンなし11桁) | |
/\A\d{11}\z/ | |
# 携帯番号(ハイフンなし10桁or11桁) | |
/\A\d{10,11}\z/ | |
# | |
# その他 | |
# | |
/\A\S+@\S+\.\S+\z/ | |
# 日付 YYYY-MM-DD | |
/\A\d{4}-\d{2}-\d{2}\z/ | |
# 時刻 24h | |
/\A([01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9]\z/ | |
# 時刻 12h | |
/\A(0[0-9]|10|11):[0-5][0-9]:[0-5][0-9]\z/ | |
# URL | |
/\Ahttp(s)?:\/\/([\w-]+\.)+[\w-]+(\/[\w-.\/?%&=]*)?/ | |
# クレジットカード(VISA,Master,Diners,Discover,Amex対応) | |
/\A(?:4[0-9]{12}(?:[0-9]{3})?|5[1-5][0-9]{14}|6011[0-9]{12}|3(?:0[0-5]|[68][0-9])[0-9]{11}|3[47][0-9]{13})\z/ |
@dyanagi ありがとうございます!メモ用にペロッと書いておいて放置していたのですが、意外に閲覧されていました(笑)のでご提案のように修正します!
私も検索から来ました!非常に参考にさせていただいております、ありがとうございます。
1点気になったのが、半角カナの正規表現で「ヲ」が許容されずに弾かれてしまいます(例:カズヲ)
以下の正規表現だと問題なく動作することができたので共有させていただきます。
# 半角カナ(修正前)
/\A[ァ-ン゙゚]+\z/
# 半角カナ(修正後)
/\A[ヲ-゚]+\z/u
[一-龥]
や [一-龠]
は一部の漢字しか拾えません。
こちらのページを元に
正規表現リスト - Qiita
という記事が書かれ,さらにそれを参考に
正規表現について - Qiita
という記事が書かれていたりして,この方法が拡散していくかもしれません。
\p{ }
が使える正規表現エンジンなら \p{Han}
が妥当かと思います。
使えない場合は悩ましいですが,せめて「CJK 統合漢字」「CJK 統合漢字拡張 A」「CJK 互換漢字」だけでもカバーして
[\u3400-\u4DBF\u4E00-\u9FFF\uF900-\uFAFF]
とするとかですかね。これでも「𡈽」「𩸽」とか拾えませんが,拡張 H まで書くと長すぎて大変なので。
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
検索から来ました!参考にさせて頂きました。Railsのバリデーション用と書かれているので少し気になったのが
^
と$
は意図したものでなければ\A
と\z
を使うのがより良いかもしれません。(Ruby独自ですが)