복붙노트

[JQUERY] 의 jQuery 유효성을 어떻게 정규 표현식 검증에 대한 규칙을 추가하려면?

JQUERY

의 jQuery 유효성을 어떻게 정규 표현식 검증에 대한 규칙을 추가하려면?

해결법


  1. 1.redsquare I의 대답 덕분에이 같은 방법을 추가 :

    redsquare I의 대답 덕분에이 같은 방법을 추가 :

    $.validator.addMethod(
            "regex",
            function(value, element, regexp) {
                var re = new RegExp(regexp);
                return this.optional(element) || re.test(value);
            },
            "Please check your input."
    );
    

    이제 모든 당신은 어떤 정규식에 대한 유효성을 검사 할이됩니다 필요

    $("#Textbox").rules("add", { regex: "^[a-zA-Z'.\\s]{1,40}$" })
    

    따옴표없이이 방법을 사용하여 생성 할 때 정규식이 될 수있는 방법 "패턴"을 포함 추가-methods.js라는 파일이처럼 또한, 그것은 보인다.

    패턴 기능은 이제 예를 만드는이 작업을 수행 할 수있는 좋은 방법입니다 :

     $("#Textbox").rules("add", { pattern: "^[a-zA-Z'.\\s]{1,40}$" })
    

    http://bassistance.de/jquery-plugins/jquery-plugin-validation/

    http://ajax.aspnetcdn.com/ajax/jquery.validate/1.9/additional-methods.js


  2. 2.당신은)합니다 (addMethod을 사용할 수 있습니다

    당신은)합니다 (addMethod을 사용할 수 있습니다

    예컨대

    $.validator.addMethod('postalCode', function (value) { 
        return /^((\d{5}-\d{4})|(\d{5})|([A-Z]\d[A-Z]\s\d[A-Z]\d))$/.test(value); 
    }, 'Please enter a valid US or Canadian postal code.');
    

    여기 좋은 기사 https://web.archive.org/web/20130609222116/http://www.randallmorey.com/blog/2008/mar/16/extending-jquery-form-validation-plugin/


  3. 3.내가 jQuery를 정규 표현식 검사기 일을 함께 모든 조각을 넣어 몇 가지 문제가 있었다, 그러나 나는이 일에있어 ... 여기 완전한 작동 예입니다. 그것은 사용하는 '검증'플러그인 jQuery를 검증 플러그인에서 찾을 수있는

    내가 jQuery를 정규 표현식 검사기 일을 함께 모든 조각을 넣어 몇 가지 문제가 있었다, 그러나 나는이 일에있어 ... 여기 완전한 작동 예입니다. 그것은 사용하는 '검증'플러그인 jQuery를 검증 플러그인에서 찾을 수있는

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
        <script src="http://YOURJQUERYPATH/js/jquery.js" type="text/javascript"></script>
        <script src="http://YOURJQUERYPATH/js/jquery.validate.js" type="text/javascript"></script>
        <script type="text/javascript">
    
            $().ready(function() {
                $.validator.addMethod("EMAIL", function(value, element) {
                    return this.optional(element) || /^[a-zA-Z0-9._-]+@[a-zA-Z0-9-]+\.[a-zA-Z.]{2,5}$/i.test(value);
                }, "Email Address is invalid: Please enter a valid email address.");
    
                $.validator.addMethod("PASSWORD",function(value,element){
                    return this.optional(element) || /^(?=.*\d)(?=.*[a-z])(?=.*[A-Z]).{8,16}$/i.test(value);
                },"Passwords are 8-16 characters with uppercase letters, lowercase letters and at least one number.");
    
                $.validator.addMethod("SUBMIT",function(value,element){
                    return this.optional(element) || /[^ ]/i.test(value);
                },"You did not click the submit button.");
    
                // Validate signup form on keyup and submit
                $("#LOGIN").validate({
                    rules: {
                        EMAIL: "required EMAIL",
                        PASSWORD: "required PASSWORD",
                        SUBMIT: "required SUBMIT",
                    },
                });
            });
        </script>
    </head>
    <body>
        <div id="LOGIN_FORM" class="form">
            <form id="LOGIN" name="LOGIN" method="post" action="/index/secure/authentication?action=login">
                <h1>Log In</h1>
                <div id="LOGIN_EMAIL">
                    <label for="EMAIL">Email Address</label>
                    <input id="EMAIL" name="EMAIL" type="text" value="" tabindex="1" />
                </div>
                <div id="LOGIN_PASSWORD">
                    <label for="PASSWORD">Password</label>
                    <input id="PASSWORD" name="PASSWORD" type="password" value="" tabindex="2" />
                </div>
                <div id="LOGIN_SUBMIT">
                    <input id="SUBMIT" name="SUBMIT" type="submit" value="Submit" tabindex="3" />
                </div>
            </form>
        </div>
    </body>
    </html>
    

  4. 4.이유가 문자열로 정규식을 정의 없습니다.

    이유가 문자열로 정규식을 정의 없습니다.

    $.validator.addMethod(
        "regex",
        function(value, element, regexp) {
            var check = false;
            return this.optional(element) || regexp.test(value);
        },
        "Please check your input."
    );
    

    telephone: { required: true, regex : /^[\d\s]+$/, minlength: 5 },
    

    아니, 더 나은이 방법 TIS?


  5. 5.PeterTheNiceGuy의 대답 a를 비트 확장 :

    PeterTheNiceGuy의 대답 a를 비트 확장 :

    $.validator.addMethod(
            "regex",
            function(value, element, regexp) {
                if (regexp.constructor != RegExp)
                    regexp = new RegExp(regexp);
                else if (regexp.global)
                    regexp.lastIndex = 0;
                return this.optional(element) || regexp.test(value);
            },
            "Please check your input."
    );
    

    이것은 당신이 규칙에 정규식 개체를 전달할 수있다.

    $("Textbox").rules("add", { regex: /^[a-zA-Z'.\s]{1,40}$/ });
    

    g 플래그는 정규식 오브젝트에 설정되어있는 경우는 lastIndex 속성을 재설정해야한다. 그렇지 않으면 제목 문자열이 다른 경우에도, 그 정규식과 마지막 경기의 위치에서 검증 시작합니다.

    내가 가진 몇 가지 다른 아이디어는 정규식의의 배열, 정규식의의 부정에 대한 또 다른 규칙을 사용 가능하게 할 수 있었다 :

    $("password").rules("add", {
        regex: [
            /^[a-zA-Z'.\s]{8,40}$/,
            /^.*[a-z].*$/,
            /^.*[A-Z].*$/,
            /^.*[0-9].*$/
        ],
        '!regex': /password|123/
    });
    

    하지만 그 구현하는 것은 어쩌면 너무 많은 것입니다.


  6. 6.addMethod 문서에 언급 한 바와 같이 :

    addMethod 문서에 언급 한 바와 같이 :

    제발 참고 : 유혹이 값에 대한 매개 변수의 검사하는 정규 표현식 메소드를 추가 훌륭하지만, 자신의 방법 안에 그 정규 표현식을 캡슐화 훨씬 청소기입니다. 당신이 약간 다른 표현을 많이해야하는 경우, 공통 매개 변수를 추출하려고합니다. 정규 표현식 라이브러리 : http://regexlib.com/DisplayPatterns.aspx

    그래서 그래, 당신은 각각의 정규 표현하는 방법을 추가해야합니다. 당신이 정규식의 이름 (과소 평가하지 않는)을 제공 할 수 있도록하면서 오버 헤드를 최소화하고, 기본 메시지 (편리한) 및 반복 정규식 자체를 복제하지 않고, 그것을 다양한 장소를 재사용 할 수있는 능력.


  7. 7.이 같은 작업에있어 :

    이 같은 작업에있어 :

    $.validator.addMethod(
        "regex",
        function(value, element, regexp) {
            return this.optional(element) || regexp.test(value);
        },
        "Please check your input."
    );
    
    
    $(function () {
        $('#uiEmailAdress').focus();
        $('#NewsletterForm').validate({
            rules: {
                uiEmailAdress:{
                    required: true,
                    email: true,
                    minlength: 5
                },
                uiConfirmEmailAdress:{
                    required: true,
                    email: true,
                    equalTo: '#uiEmailAdress'
                },
                DDLanguage:{
                    required: true
                },
                Testveld:{
                    required: true,
                    regex: /^[0-9]{3}$/
                }
            },
            messages: {
                uiEmailAdress:{
                    required: 'Verplicht veld',
                    email: 'Ongeldig emailadres',
                    minlength: 'Minimum 5 charaters vereist'
                },
                uiConfirmEmailAdress:{
                    required: 'Verplicht veld',
                    email: 'Ongeldig emailadres',
                    equalTo: 'Veld is niet gelijk aan E-mailadres'
                },
                DDLanguage:{
                    required: 'Verplicht veld'
                },
                Testveld:{
                    required: 'Verplicht veld',
                    regex: '_REGEX'
                }
            }
        });
    });
    

    확인 정규식 / 사이에 있는지 확인합니다 :-)


  8. 8.당신은 추가-methods.js 파일에 정의 된 패턴을 사용할 수 있습니다. 이 추가-methods.js 파일, jQuery를 검증 의존성 후 포함되어야합니다 다음 방금 사용 할 수

    당신은 추가-methods.js 파일에 정의 된 패턴을 사용할 수 있습니다. 이 추가-methods.js 파일, jQuery를 검증 의존성 후 포함되어야합니다 다음 방금 사용 할 수

    $ ( "#의 FRM").의 validate ({ 규칙 : { 텍스트 상자 : { 패턴 : /^[a-zA-Z'.\s]{1,40}$/ }, }, 메시지 : { 텍스트 상자 : { 패턴 : '텍스트 상자 문자열 형식이 유효하지' } } }); <스크립트 SRC = "https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"> <스크립트 SRC = "https://cdnjs.cloudflare.com/ajax/libs/jquery-validate/1.17.0/jquery.validate.js"> <스크립트 SRC = "https://cdnjs.cloudflare.com/ajax/libs/jquery-validate/1.17.0/additional-methods.min.js"> <형태 ID = "FRM"방법 = = ""작업 "GET">

    <= "전체 이름"레이블> 텍스트 상자 <입력 ID = "텍스트 상자 'NAME ="텍스트 상자 "TYPE ="텍스트 ">


  9. 9.이 코드를 노력하고 있습니다.

    이 코드를 노력하고 있습니다.

    function validateSignup()
    {   
        $.validator.addMethod(
                "regex",
                function(value, element, regexp) 
                {
                    if (regexp.constructor != RegExp)
                        regexp = new RegExp(regexp);
                    else if (regexp.global)
                        regexp.lastIndex = 0;
                    return this.optional(element) || regexp.test(value);
                },
                "Please check your input."
        );
    
        $('#signupForm').validate(
        {
    
            onkeyup : false,
            errorClass: "req_mess",
            ignore: ":hidden",
            validClass: "signup_valid_class",
            errorClass: "signup_error_class",
    
            rules:
            {
    
                email:
                {
                    required: true,
                    email: true,
                    regex: /^[A-Za-z0-9_]+\@[A-Za-z0-9_]+\.[A-Za-z0-9_]+/,
                },
    
                userId:
                {
                    required: true,
                    minlength: 6,
                    maxlength: 15,
                    regex: /^[A-Za-z0-9_]{6,15}$/,
                },
    
                phoneNum:
                {
                    required: true,
                    regex: /^[+-]{1}[0-9]{1,3}\-[0-9]{10}$/,
                },
    
            },
            messages: 
            {
                email: 
                {
                    required: 'You must enter a email',
                    regex: 'Please enter a valid email without spacial chars, ie, Example@gmail.com'
                },
    
                userId:
                {
                    required: 'Alphanumeric, _, min:6, max:15',
                    regex: "Please enter any alphaNumeric char of length between 6-15, ie, sbp_arun_2016"
                },
    
                phoneNum: 
                {
                    required: "Please enter your phone number",
                    regex: "e.g. +91-1234567890"    
                },
    
            },
    
            submitHandler: function (form)
            {
                return true;
            }
        });
    }
    

  10. 10.우리는 주로의 마크 업 표기법을 사용 JQuery와 유효성 플러그인 및 게시 된 샘플은 우리 플래그는 정규 표현식에 존재하는 경우, 예를 들어, 작동하지 않았다

    우리는 주로의 마크 업 표기법을 사용 JQuery와 유효성 플러그인 및 게시 된 샘플은 우리 플래그는 정규 표현식에 존재하는 경우, 예를 들어, 작동하지 않았다

    <input type="text" name="myfield" regex="/^[0-9]{3}$/i" />
    

    그러므로 우리는 다음 코드를 사용

    $.validator.addMethod(
            "regex",
            function(value, element, regstring) {
                // fast exit on empty optional
                if (this.optional(element)) {
                    return true;
                }
    
                var regParts = regstring.match(/^\/(.*?)\/([gim]*)$/);
                if (regParts) {
                    // the parsed pattern had delimiters and modifiers. handle them. 
                    var regexp = new RegExp(regParts[1], regParts[2]);
                } else {
                    // we got pattern string without delimiters
                    var regexp = new RegExp(regstring);
                }
    
                return regexp.test(value);
            },
            "Please check your input."
    );  
    

    물론 지금 하나는 통과 정규식이 플러그인으로 개체 수에 위의 하나,이 코드를 결합 할 수 있지만, 우리가 그것을 필요로하지 않았기 때문에 우리는 독자 ;-)이 운동을 떠났다.

    PS : 또한 거기에 플러그인 번들로 제공됩니다, https://github.com/jzaefferer/jquery-validation/blob/master/src/additional/pattern.js


  11. 11.이는 유효성 검사 규칙 중 하나 인, 나를 위해 일한 :

    이는 유효성 검사 규칙 중 하나 인, 나를 위해 일한 :

        Zip: {
                    required: true,
                    regex: /^\d{5}(?:[-\s]\d{4})?$/
                }
    

    희망이 도움이


  12. 12.

        $.validator.methods.checkEmail = function( value, element ) {
            return this.optional( element ) || /[a-z]+@[a-z]+\.[a-z]+/.test( value );
        }
    
        $("#myForm").validate({
            rules: {
                email: {
                    required: true,
                    checkEmail: true
                }
            },
            messages: {
                email: "incorrect email"
            }
        });
    
  13. from https://stackoverflow.com/questions/280759/jquery-validate-how-to-add-a-rule-for-regular-expression-validation by cc-by-sa and MIT license