検証しようとしているフォームがあります。要件では、電子メールのユーザー名にアンダースコアとハイフンを使用できますが、電子メールのユーザー名の先頭または末尾に特殊文字(ハイフンとアンダースコアを含む)を使用することはできません。
これは、フォーム検証で正規表現を使用して実行されますか?それとも、別のjquery関数で実行されますか?メールのユーザー名の最初または最後の文字として特殊文字が使用されている場合にエラーを発生させようとしています。
メールフィールドの検証コードは次のとおりです。
email: function(value, element) {
// contributed by Scott Gonzalez: http://projects.scottsplayground.com/email_address_validation/
return this.optional(element) || /^((([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.test(value);
},
そして、登録フォーム検証のコードは次のとおりです。
if (form == 'registration') {
var validation_rules = {
rules: {
password_confirm: {
equalTo: "#password"
},
email: {
},
email_confirm: {
equalTo: "#email"
},
dd_reg_month: "required"
},
groups: {
birthday: "dd_reg_month dd_reg_year"
},
errorPlacement: function(error, element) {
if (element.attr("name") == "dd_reg_month" || element.attr("name") == "dd_reg_year") $("#reg_birthday").append(error);
else error.insertAfter(element);
},
validClass: "success",
success: "success",
focusInvalid: false,
invalidHandler: function(form, validator) {
var errors = validator.numberOfInvalids();
var ipAddress =/^\[\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\]$/;
if (errors) {
var message = errors == 1 ? 'Please correct the error below' : 'Please correct the ' + errors + ' errors below.';
$("div.error_info").html(message);
$("div.error_info").show();
} else {
$("div.error_info").hide();
$('form input.success').css('border-color', 'green');
}
},
ignore: ".ignore"
};
}
どんな助けでも、先頭と末尾のキャラクターをどのように扱うかについての手がかりでさえ、完全に素晴らしいでしょう。