質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
正規表現

正規表現とは特定の文字列によるパターンマッチングを行う際に用いられる宣言型プログラミングです。

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

Q&A

1回答

2014閲覧

フォームエラーチェック 正規表現でのエラー条件指定方法について

退会済みユーザー

退会済みユーザー

総合スコア0

正規表現

正規表現とは特定の文字列によるパターンマッチングを行う際に用いられる宣言型プログラミングです。

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

0グッド

0クリップ

投稿2019/01/24 14:39

○実現したいこと
下記jQuery-Validation-Engineを利用して、フォームのメールアドレスのエラーチェックをしております。
エラー条件をカスタマイズしたいですが、
正規表現の部分をどのようにカスタマイズすべきかわからず教えていただけないでしょうか。
https://github.com/posabsolute/jQuery-Validation-Engine

初期設定では、下記の正規表現がメールアドレスのエラー条件となっております。

/^((([a-z]|\d|[!#$%&'*+\-/=?^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+(.([a-z]|\d|[!#$%&'*+\-/=?^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+)*)|((\x22)((((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(([\x01-\x08\x0b\x0c\x0e-\x1f\x7f]|\x21|[\x23-\x5b]|[\x5d-\x7e]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(\([\x01-\x09\x0b\x0c\x0d-\x7f]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))))*(((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(\x22)))@((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))).)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))).?$/i,

○上記正規表現に追加したい条件
・メールアドレスの先頭の文字はアルファベット限定 それ以外はエラー
・メールアドレス中の記号はアンダーバー限定   それ以外はエラー

勉強不足で申し訳ないのですが教えていただきたいです。
よろしくお願いいたします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2019/01/24 23:51

現時点で日本で登録可能なメールアドレスは、[trou.terada@ユーザーグループ.コム]なんてものがあったりする。
退会済みユーザー

退会済みユーザー

2019/01/25 00:07

調べたら、グーグルが 武@メール.グーグル なアドレスにも送受信可能にする設定を4年前に取り込んでるな @が1つ .が連続しない 数字や記号から始まらない 程度?しかしてなさそう。
退会済みユーザー

退会済みユーザー

2019/01/25 01:42 編集

制御文字以外のほとんど何でも使用可で、「.」のみ先頭も末尾にもなく、連続していなければ、ほぼなんでもありのパターンですよね。""で括っていれば、改行やその他制御コードも使用可にみえます。 かなり許容範囲が広いパターンだと思いますが、追加したい条件からすると、メールアドレス(というかアカウントですよね?)には英数字とアンダースコアしか許容しない想定をしているような気がします。
退会済みユーザー

退会済みユーザー

2019/01/25 08:14

みなさまありがとうございます。 もう一度確認してみます。
guest

回答1

0

まず、(A|B|C)というパターンは、AまたはBまたはCのどれかにマッチするという意味です。問題文の最初をみると、英小文字または数字または……という感じですので、条件をもっと限定的にするにはどうすればいいかは容易に推測できるはずですね。

投稿2019/01/24 19:07

KojiDoi

総合スコア13669

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2019/01/24 21:46

ご連絡くださりありがとうございます。 KojiDoiさまに別でいただいた回答を参考に下記のように[^a-zA-Z](アルファベット以外)を追加してみたところ、エラーメッセージが表示されたのですが、下記であっているという認識で問題ないでしょうか。 /^((([^a-zA-Z]|\d|[!#$%&'*+\-/=?^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+(.([a-z]|\d|[!#$%&'*+\-/=?^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+)*)|((\x22)((((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(([\x01-\x08\x0b\x0c\x0e-\x1f\x7f]|\x21|[\x23-\x5b]|[\x5d-\x7e]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(\([\x01-\x09\x0b\x0c\x0d-\x7f]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))))*(((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(\x22)))@((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))).)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))).?$/i よろしくお願いいたします。
退会済みユーザー

退会済みユーザー

2019/01/25 04:09

Validation-Engineの資料を読まずに推測でレスしますが、エラーとなる条件を書くのではなく、正常と判断する条件を書くべきものであるはずです。 実際、オリジナルのパターンは、先頭に関しては「.」でなければほとんどの文字が使えるものです。
退会済みユーザー

退会済みユーザー

2019/01/25 08:15

承知いたしました。 色々教えていただきありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問