オリジナルアプリ作成にあたり使用した正規表現を、備忘録としてアウトプットします。
英数字混合
※大文字・小文字の区別なし
/\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文字を返す
ご指摘などあれば、ご教授いただけると幸いです。