programing tip

jQuery의 정규식 필드 유효성 검사

itbloger 2020. 10. 21. 07:46
반응형

jQuery의 정규식 필드 유효성 검사


jQuery에서 문자열의 지정된 정규식을 일치시키는 데 사용할 수있는 함수 / 플러그인이 있습니까?

예를 들어, 이메일 입력 상자에서 이메일 주소를 받고 올바른 형식인지 확인하고 싶습니다. 정규 표현식이 입력과 일치하는지 확인하려면 어떤 jQuery 함수를 사용해야합니까?

해결책을 찾기 위해 검색했지만 아무것도 찾을 수 없었습니다.


나는 이것이 그것을 믿는다 :

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

URL 및 이메일 주소와 같은 항목에 대한 기본 패턴이 있으며 자신의 고유 한 패턴도 사용할 수 있다고 생각합니다.


정규식을 기반으로 일부 요소를 검색하려면 filter함수를 사용할 수 있습니다 . 예를 들어, 모든 입력 상자에 사용자가 숫자 만 입력했는지 확인하고 싶었으므로 일치하지 않는 모든 입력을 찾아 강조 표시해 보겠습니다.

$("input:text")
    .filter(function() {
        return this.value.match(/[^\d]/);
    })
    .addClass("inputError")
;

물론 이런식이라면 양식 유효성 검사 플러그인을 사용할 수 있지만이 방법은 원하는 모든 요소에 적용 할 수 있습니다. 내가 의미하는 바를 보여주는 또 다른 예 : id일치 하는 모든 요소 찾기/[a-z]+_\d+/

$("[id]").filter(function() {
    return this.id.match(/[a-z]+_\d+/);
});

나는 jQuery와 JavaScript를 사용하고 있으며 잘 작동합니다.

var rege = /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/;
if(rege.test($('#uemail').val())){ //do something }

특정한 것을 찾고 있지 않는 한, 정규 자바 스크립트를 문자열과 함께 사용하여 이미 정규식 매칭을 할 수 있습니다.

예를 들어, 다음과 같이 문자열을 사용하여 일치를 수행 할 수 있습니다.

var phrase = "This is a phrase";
phrase = phrase.replace(/is/i, "is not");
alert(phrase);

일반적인 정규식 일치 외에 찾고있는 것이 있습니까?


내 코드 :

$("input.numeric").keypress(function(e) { /* pour les champs qui ne prennent que du numeric en entrée */          
            var key = e.charCode || e.keyCode || 0;                     
            var keychar = String.fromCharCode(key);
            /*alert("keychar:"+keychar + " \n charCode:" + e.charCode + " \n key:" +key);*/
            if (  ((key == 8 || key == 9 || key == 46 || key == 35 || key == 36 || (key >= 37 && key <= 40)) && e.charCode==0) /* backspace, end, begin, top, bottom, right, left, del, tab */
                    || (key >= 48 && key <= 57) ) { /* 0-9 */
                return;
            } else {
                e.preventDefault();
            }
        });

jquery.validate.js (joern 작성), Scott Gonzalez 제공 : http://projects.scottsplayground.com/email_address_validation/

/^((([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

MVC Razor를 사용하는 경우 @@을 두 배로 늘려야합니다.

 /^((([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

스파게티를 원하십니까?

참고 URL : https://stackoverflow.com/questions/345194/regular-expression-field-validation-in-jquery

반응형