0

「FullName」フィールドの検証を行うことを理解していません..

以下は、「FullName」フィールドに必要な検証です。

  • a から z (小文字)、"-" (ダッシュまたはハイフン)、および " " (スペース) の文字のみを使用できます。
  • "-" (ダッシュ) と " " (スペース) の文字を入力する必要があります。
  • 「-」または「 」の文字は、入力する最初または最後の文字であってはなりません。
  • "-" は " " のすぐ隣または隣接 (前後) であってはなりません。
  • "-" または " " は、それ自体のすぐ隣 (隣接) であってはなりません。


私はこの方法でできることを知っていました:

$('#fullName').blur(function(){


            var input = $('#fullName').val();
            if(  !/[^a-z0-9 -]/.test(input)  &&     
                 / /.test(input) && /-/.test(input)  &&  
                 !/^[ |-]|[ |-]$/.test(input)  &&      
                 !/ -|- |--|  /.test(input))
            {
                 $('.error').remove();
            }
            else{
                 $('#fullName')
                     .after('<span class="error">Your Name should be entered like:  "blahblah" </span>');
            }

    });

しかし、上記の正規表現コードをここに挿入する方法がわかりません:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
 <head>

<script type="text/javascript"   src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>

  <script type="text/javascript" src="http://jzaefferer.github.com/jquery-validation/jquery.validate.js"></script>

<script type="text/javascript" src="http://jquery-joshbush.googlecode.com/files/jquery.maskedinput-1.2.1.pack.js"></script>


 <script>

$(document).ready(function(){


 $("#fullname").focus();

  $("#fullname").addMethod("alphanumeric", function(value, element) {
    return ! $("#fullname").methods.required(value, element) || /^[a-zA-Z0-9_]+$/i.test(value);
} , "Letters, numbers or underscores only please"); 




      $("#ourform").validate({
        onfocusout: function(element) { $(element).valid(); } ,
        rules: {
            fullname : {
              required: true,
              maxlength: 14,
              alphanumeric : false
            },                  
            email: {
              required: true,
              email: true
            }
        },
        messages: {
            fullname : {
              required: "Please specify your Full Name",
              maxlength:  "Please enter only upto 14 characters",
              alphanumeric : "do not enter alphanumeric"
            },
            email: {
              required: "We need your email address to contact you",
              email: "Your email address must be in the format of name@domain.com"
            }
        }
      });



   });



  </script>



<style>

.error {color: red;}

</style>


 </head>

 <body>




<form id="ourform" method="get" action="">

       <fieldset>

           <p>
             <label for="fullname">Full Name</label>
             <em>*</em><input id="fullname" name="fullname" size="25" class="required"  maxlength="14" />
           </p>


           <p>
             <label for="email">Email</label>
             <em>*</em><input id="email" name="email" size="25"  class="required email" />
           </p>



     </fieldset>

  </form>



 </body>
</html>


編集: - FullName (名と姓の両方 - 両方に 1 つのフィールドを使用)、

4

1 に答える 1

1

ここに2つの質問があります:

  1. ルールに従ってフルネームを検証する方法。
  2. カスタムjQueryバリデーター検証ルールを追加する方法。

カスタムjQueryバリデーター検証ルールを追加する方法

フィールドのフルネームの値が「Mark」であることを検証する例を次に示します。

$(document).ready(function() {
    var fullname_invalid = function(value) {
        return value === "Mark";
    }


    $.validator.addMethod("custom_fullname", function(value, element) {
        return fullname_invalid(value);
    }, 'Your Name should be entered like: "Mark"');

    $('#signup').validate({
        rules: {
            fullname: {
                required: true,
                custom_fullname: true
            }
        }
    });

    $('#signup').on('submit', function(event) {
        event.preventDefault();
    });
});​

HTML:

<form id="signup" action="/action">
    <input name="fullname" type="text" />
    <input type="submit">
</form>​

デモ:jsfiddle

参照:jQuery検証プラグイン-シンプルなカスタムルールを作成する方法は?

ルールに従ってフルネームを検証する方法

$(document).ready(function() {

    var validCharactersRegex = new RegExp(/^[a-zA-Z0-9 -]+$/);
    var doesNotStartWithDashOrSpace = new RegExp(/^[^ -]/);
    var fullname_invalid = function(value) {
        return validCharactersRegex.test(value) && doesNotStartWithDashOrSpace.test(value) && value.indexOf('  ') == -1 && value.indexOf('--') == -1 && value.indexOf(' -') == -1 && value.indexOf('- ') == -1;
    }


    $.validator.addMethod("custom_fullname", function(value, element) {
        return fullname_invalid(value);
    }, 'Your Name should be entered like: "blahblah"');

    $('#signup').validate({
        rules: {
            fullname: {
                required: true,
                custom_fullname: true
            }
        }
    });

    $('#signup').on('submit', function(event) {
        event.preventDefault();
    });
});​

デモ:jsfiddle

于 2012-12-12T15:58:51.997 に答える