$.validator.addMethod("pw_pattern1", function(value, element) {
    return this.optional(element) || /^(?=.*[a-zA-Z])(?=.*[0-9])(?=.*[!@$%^*]).*$/i.test(value);
}, "비밀번호는 영문+숫자+특수문자 포함 9자리 이상이며, 특수문자는 !@$%^*만 지원됩니다.");


/^(?=.*[a-zA-Z])(?=.*[0-9])(?=.*[!@$%^*]).*$/

영문, 숫자, 특수문자가 반드시 모두 포함해야 true

                
$.validator.addMethod("pw_pattern2", function(value, element) {
    return this.optional(element) || /^(?=[a-zA-Z0-9!@$%^*])(?!.*[^a-zA-Z0-9!@$%^*]).*$/i.test(value);
}, "비밀번호는 영문+숫자+특수문자 포함 9자리 이상이며, 특수문자는 !@$%^*만 지원됩니다.");


/^(?=[a-zA-Z0-9!@$%^*])(?!.*[^a-zA-Z0-9!@$%^*]).*$/

영문이나 숫자, 해당 특수문자 중 한가지만 포함해도 true

정규식 표현 중에 괄호 범위 안에서 전역으로 문자 검색 하는 기능을 이번에 처음 알게되어 정리해봄.




++ 추가 표현 (업데이트 2018/11/20)


function validateName(name) {

    let result = false;

    let re = /^(?=[^\s\x22\x27])(?!.*[\s\x22\x27]).{2,20}$/;

    result = re.test(String(name).toLowerCase());


    return result;

}


공백, 홑따옴표('), 쌍따옴표(") 를 제외한 문자열을 최소 2글자에서 20글자 사이까지 탐지.


위 정규식을 html pattern 속성에 넣으면 따옴표 때문에 깨져서 유니코드로 표현하였다.


한글 정규식 표현도 유니코드로 표현해주면 깨지지않고 표현 가능하다


정규식 표현 공부하는건 재밌는데,, 어려워서 금방금방 까먹게 된다.


-------


의도대로 완전하게 감지되지않아 이번에 수정하여 업데이트하였습니다. 이제 완벽하게 됨.


+ 응용 패턴 추가



해당 특수문자 발견 시 false 리턴


/^[^\s\x22\x27\{\}\[\]()<>?|`~!@#$%^&*_\-+=,;:\/]*$/


쌍, 홑따옴표 발견 시 false 리턴 (위의 정규식 표현과 다른 방법)


/^[^\s\x22\x27]{2,20}$/


알파벳, 숫자, 한글만 가능하게 (유니코드로 변환해야 에러 발생이 안된다)


/^[a-zA-Z0-9\uAC00-\uD7A3]*$/



이미지태그 정규식표현 (PHP 버전)

<img.*?src=['"](.*?)['"]

preg_match_all('/<img.*?src=[\'"](.*?)[\'"]/', $input_lines, $output_array);



한글 탐지 (가-힇)


/(?=.*[\uAC00-\uD7A3]).*/g




정규식 표현 검사 사이트


https://regexr.com/


https://www.phpliveregex.com/









참고 : https://medium.com/@originerd/%EC%A0%95%EA%B7%9C%ED%91%9C%ED%98%84%EC%8B%9D-%EC%A2%80-%EB%8D%94-%EA%B9%8A%EC%9D%B4-%EC%95%8C%EC%95%84%EB%B3%B4%EA%B8%B0-5bd16027e1e0