728x90
로그인에 자주 사용하게 되는 정규식 ..
그 이외에도 많이 사용된다.
/* 이메일 주소 검사 도메인을 제외한 최대길이는 64글자 입니다. */
$email = 'abcdefg@naver.com'; /* 사용 가능 */
$email = 'abcdefg@naver.c'; /* 사용 불가 (적어도 2글자 이상) */
$email = 'abcdefg@.kr'; /* 사용 불가 (1글자 이상) */
$email = '@naver.kr'; /* 사용 불가 (1글자 이상) */
if(preg_match('/^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/', $email)) {
asd('메일주소 ' . $email.'은 사용이 가능한 메일주소 입니다.');
}else{
asd('메일 주소를 확인해 주세요.');
}
이메일은 최대 64글자까지 가능하기에 기이일게 해줘야한다.
로그인하는데 64글자로 이메일을 만들게 해줘야한다는게 정말 소름끼쳤다...
preg_match를 이용해 (정규식,비교할대상) 을 입력해 true값과 false값을 받을 수 있다.
/* 한글,영어 이름 길이 비교*/
$name = '가나다라';
if (mb_strlen($name,'utf-8')>= 2 && mb_strlen($name,'utf-8')<= 8) {
asd('사용 가능');
} else{
asd('이름 확인 필요');
}
$name1 = 'abcd';
$name2 = '가나다라';
asd(mb_strlen($name1,'euc-kr')); /* abcd = 4 */
asd(mb_strlen($name2,'euc-kr')); /* 가나다라 = 8 */
asd(mb_strlen($name1,'utf-8')); /* abcd = 4 */
asd(mb_strlen($name2,'utf-8')); /* 가나다라 = 4*/
한글의 경우 utf-8이 아니라면 한글자당 길이가 2로 반환된다. 정확한 비교를위해 mb_strlen을 사용해 1글자당 1의 길이를 가지도록 해놓고 비교연산자를 이용해야한다.
$nicname = '특문쓰고싶은데!';
if (!preg_match('/^[A-Za-z가-힣]+$/', $nicname)) {
asd('이름은 한글, 영어만 사용 가능합니다.');
}
한글과 영어만 이용가능하도록 설정한 정규식 해당 정규식을 사용하면 특수문자 및 숫자 입력시 false를 반환한다.
/* 암호에 영어, 숫자, 특수문자가 반드시 1개씩 들어가도록.*/
$pw = 'asdf1234!';
$pw1 = 'asdf1234'; /* 사용 불가 */
if (preg_match('/^(?=.*[A-Za-z])(?=.*\d)(?=.*[@$!%*#?&])[A-Za-z\d@$!%*#?&]/', $pw)) {
asd('패스워드 ' .$pw . '는 사용가능한 암호입니다.');
}else{
asd('패스워드는 최소 8글자 이상, 영대/소문자, 숫자, 특수문자 조합이어야 합니다.');
}
암호를 셋팅할때 자주 사용하게 되는 정규식
영어,숫자,특수문자가 반드시 1개 이상 들어가도록 만든 정규식이다.
해당 암호로 셋팅하고 암호로 컴플레인 받은적이 없다... 깔끔한거같다
/* 배열에서 원하는 문자열 가져오기 */
$value = array(
'javascript','java','php','react','html','API'
);
$ptn = '/jav/';
$arr_val =[ preg_grep($ptn,$value)];
asd($arr_val);
/* array로 값을 가져와 준다. [0] -> javascript , [1] -> 'java' */
배열에서 원하는 문자열을 가져와준다. 생각보다 아주 편하다. 가져와서 배열로 반환해줘서 더 편함
얼마전에 만든 자바스크립트 언어검색기능은 그렇게 귀찮게 만들었는데 앤 그냥 이거하나 갓다주면 끝이다..
물론 값을 못넣는게 문제지 ㅋ.
<input type="text" oninput="this.value = this.value.replace(/[^0-9-]/g, '').replace(/(\..*)\./g, '$1');" /> 숫자와 - 만 입력 가능 <br/>
<input type="text" oninput="this.value = this.value.replace(/[^0-9]/g, '').replace(/(\..*)\./g, '$1');" /> 숫자 만 입력 가능
숫자만 입력가능한 input을 만들때 이용
그냥 그대로 갓다넣으면 숫자 이외의 값을 입력하면 작동하지않는다.
사실작동했다가 바로 지워져버리는거지만 그렇게 느껴지지 않는다.
완성 내용들...
728x90
'개인 공부' 카테고리의 다른 글
[php] 기본적인 함수 사용(strlen, number_fomat,substr) (0) | 2022.11.30 |
---|---|
[php] 기본적인 함수 사용_2 (timestamp,strotitome,date) (0) | 2022.11.22 |
[php] 기본적인 함수 사용(explod,implod,isset,in_array) (0) | 2022.11.21 |
[JQuery] 배열안에 있는 시스템 언어 검색(간단한 includes) (0) | 2022.11.16 |
[php] 핸드폰 번호에 - 넣기 (0) | 2022.11.15 |