オリジナルアプリ作成にあたり使用した正規表現を、備忘録としてアウトプットします。
#英数字混合
※大文字・小文字の区別なし
/\A(?=.*?[a-z])(?=.*?\d)[a-z\d]+\z/i
#半角数字のみ
/\A[0-9]+\z/
全角(漢字・ひらがな・カタカナ)
/\A[ぁ-んァ-ヶ一-龥々ー]+\z/
・ァ-ン
ではなくァ-ヶ
としているのはヴ、ヵ、ヶ
を含めるため。
・一-龥
ではなく一-龥々
としているのは々
を含めるため。
・末尾にー
があるのは「ジュリー」「メアリー」などのハイフンを含めるため。
全角(カタカナのみ)
/\A[ァ-ヶー]+\z/
#電話番号10桁以上11桁以下(ハイフンなし)
/\A[0-9]{10,11}+\z/
#郵便番号(ハイフンあり)
/\A\d{3}[-]\d{4}\z/
#今回登場した正規表現のパターン表記一覧
[a-z]
: 角括弧で囲まれた文字のいずれか 1個にマッチ
\d
:数字にマッチ
{n, m}
: 直前の文字が少なくともn回、多くてもm回出現するものにマッチ
.
:改行以外のどの1文字にもマッチ
+
:直前の文字の1回以上の繰り返しにマッチ
\A
:直後の文字が先頭にある文字列にマッチ
\z
:直前の文字が末尾にある文字列にマッチ
[ぁ-んァ-ヶ一-龥々]
: 角括弧に囲まれたかな、カナ、漢字のいずれかにマッチ(ヴ、ヵ、ヶ、々を含む)
?=
:直後に設定した文字が続く文字列にマッチ
*?
:直前に設定した文字が0回以上続く文字列をチェックし、?の直後の文字が出た段階でその1文字を返す
ご指摘などあれば、ご教授いただけると幸いです。