javascript
1window.Parsley.addValidator('email', { 2 validateString: function (value) { 3 var regExp = /^(?:(?:(?:(?:[a-zA-Z0-9_!#$\%&'*+/=?^`{}~|\-]+)(?:.(?:[a-zA-Z0-9_!#$\%&'*+/=?^`{}~|\-]+))*)|(?:"(?:\[^\r\n]|[^\"])*")))\@(?:(?:(?:(?:[a-zA-Z0-9_!#$\%&'*+/=?^`{}~|\-]+)(?:.(?:[a-zA-Z0-9_!#$\%&'*+/=?^`{}~|\-]+))*)|(?:[(?:\\S|[\x21-\x5a\x5e-\x7e])*])))$/; 4 return regExp.test(value); 5 } 6});
現在Parsleyで上記のようなバリデーションを設定しています。(ひらがなを含まないメールアドレス形式を許容する)
今回やりたいことは、これに少し修正を加えて特定のメールアドレスが入力された場合にエラーを返すようにすることです。
具体的には、'@softbank.ne.jp'、'@yahoo.co.jp'、'@gmail.com'を語尾に含むアドレスが入力された時に、バリデーションに引っ掛けてエラーを出すような実装にしたいです。
この場合どのように設定するのがよろしいでしょうか?ご教示いただけると幸いです。
ちなみに以下のように設定してみたところ、バリデーション自体はうまくかけれたのですが、RSpecfeaturesでいじったところと関係のないエラーがたくさん出てしまい(原因は不明)、他に表現の方法がないか模索しています。
javascript
1window.Parsley.addValidator('email', { 2 validateString: function (value) { 3 var regExp = /^(?:(?:(?:(?:[a-zA-Z0-9_!#$\%&'*+/=?^`{}~|\-]+)(?:.(?:[a-zA-Z0-9_!#$\%&'*+/=?^`{}~|\-]+))*)|(?:"(?:\[^\r\n]|[^\"])*")))\@(?:(?:(?:(?:[a-zA-Z0-9_!#$\%&'*+/=?^`{}~|\-]+)(?:.(?:[a-zA-Z0-9_!#$\%&'*+/=?^`{}~|\-]+))*)|(?:[(?:\\S|[\x21-\x5a\x5e-\x7e])*])))$(?<!softbank.ne.jp|yahoo.co.jp|gmail.com)/; 4 return regExp.test(value); 5 } 6});

回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/04/08 13:23
2018/04/08 13:24