[JQUERY] 의 jQuery 유효성을 어떻게 정규 표현식 검증에 대한 규칙을 추가하려면?
JQUERY의 jQuery 유효성을 어떻게 정규 표현식 검증에 대한 규칙을 추가하려면?
해결법
-
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.당신은)합니다 (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.내가 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.이유가 문자열로 정규식을 정의 없습니다.
이유가 문자열로 정규식을 정의 없습니다.
$.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.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.addMethod 문서에 언급 한 바와 같이 :
addMethod 문서에 언급 한 바와 같이 :
제발 참고 : 유혹이 값에 대한 매개 변수의 검사하는 정규 표현식 메소드를 추가 훌륭하지만, 자신의 방법 안에 그 정규 표현식을 캡슐화 훨씬 청소기입니다. 당신이 약간 다른 표현을 많이해야하는 경우, 공통 매개 변수를 추출하려고합니다. 정규 표현식 라이브러리 : http://regexlib.com/DisplayPatterns.aspx
그래서 그래, 당신은 각각의 정규 표현하는 방법을 추가해야합니다. 당신이 정규식의 이름 (과소 평가하지 않는)을 제공 할 수 있도록하면서 오버 헤드를 최소화하고, 기본 메시지 (편리한) 및 반복 정규식 자체를 복제하지 않고, 그것을 다양한 장소를 재사용 할 수있는 능력.
-
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.당신은 추가-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"> script> <스크립트 SRC = "https://cdnjs.cloudflare.com/ajax/libs/jquery-validate/1.17.0/jquery.validate.js"> script> <스크립트 SRC = "https://cdnjs.cloudflare.com/ajax/libs/jquery-validate/1.17.0/additional-methods.min.js"> script> <형태 ID = "FRM"방법 = = ""작업 "GET">
-
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.우리는 주로의 마크 업 표기법을 사용 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.이는 유효성 검사 규칙 중 하나 인, 나를 위해 일한 :
이는 유효성 검사 규칙 중 하나 인, 나를 위해 일한 :
Zip: { required: true, regex: /^\d{5}(?:[-\s]\d{4})?$/ }
희망이 도움이
-
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" } });
from https://stackoverflow.com/questions/280759/jquery-validate-how-to-add-a-rule-for-regular-expression-validation by cc-by-sa and MIT license
'JQUERY' 카테고리의 다른 글
[JQUERY] 어떻게 jQuery를 함께 파일 입력 크기를 확인하려면? (0) | 2020.09.30 |
---|---|
[JQUERY] jQuery를의 형태의 방지를 두 번 제출 (0) | 2020.09.30 |
[JQUERY] $의 양식 내부가 제대로 게시하지 .load (0) | 2020.09.30 |
[JQUERY] 어떻게 JSON 데이터를 게시하는 JQuery와 사용할 수 있습니까? (0) | 2020.09.30 |
[JQUERY] JSONP에 게시 된 데이터 (0) | 2020.09.30 |