묻고답하기
정규식 문의
2013.02.23 20:36
// 무조건 앞자리 010, 016, 017, 018, 019 인
// 전화번호 정규식
var regexObj = /^(01[016789])?[1-9][0-9]{2,3}?[0-9]{4}$/;
// 010 일때는 무조건 앞 네자리
var regexObj = /^(01[16789]?[1-9][0-9]{2,3}?[0-9]{4}|01[0]?[1-9][0-9]{3}?[0-9]{4})$/;
// 010 일때는 8자리이고, 그외는 7자리 8자리 가능
// 앞에 네자리는 0이 올수 없음.
var regexObj = /^((01[1|6|7|8|9])[1-9]+[0-9]{6,7})|(010[1-9][0-9]{7})$/;
// jquery
if(!regexObj.test($('#mdn').attr('value'))){
alert('잘못된 전화번호입니다');
return false;
}
혹시 이거 되시는 분 있나요? XE 코드에 자바스크립트로 삽입했는데 계속 안먹히네요 ㅠㅠ
뭐가 문제인지;;; XE에서만 작동 안되는 건가요?;;; 누가 한번 테스트 좀 부탁해요 ㅠㅠ
댓글 5
-
CMD
2013.02.23 21:08
-
시니시즘
2013.02.23 21:22
정상적으로 매치된다고 뜹니다~ 근데 XE에 넣으면 에러가 뜨네요~ -
CMD
2013.02.23 21:28
코드 다시 보니 정규식이 아니고 jQuery 에러네요.
if(!regexObj.test(jQuery('#mdn').attr('value'))){
alert('잘못된 전화번호입니다');
return false;
}XE에서 jQuery를 사용하실땐 $대신 jQuery를 사용하셔야 해요.
-
시니시즘
2013.02.23 21:41
아 아뇨 그게 아니라;;; regexObj = /^((01[1|6|7|8|9])[1-9]+[0-9]{6,7})|(010[1-9][0-9]{7})$/; testVal = '01066239285'; if(!regexObj.test(testVal)){ alert('잘못된 휴대폰 번호입니다'); return false; }; 이런식으로도 해보고 별의 별 짓을 다해봤어요. 하루 종일 이것만 붙잡고 있네요;;; 그런 기본적인 포인트는 당연히 알고있구요. -
CMD
2013.02.23 21:47
regexObj = /^((01[1|6|7|8|9])[1-9]+[0-9]{6,7})|(010[1-9][0-9]{7})$/; testVal = '01066239285';
if(!regexObj.test(testVal)){ alert('잘못된 휴대폰 번호입니다'); return false; };
위와 같이 했을 때 알럿이 안뜨는건 정상인데요?XE 공식 사이트에서 크롬의 요소 검사로 테스트하였어요~
-
시니시즘
2013.02.23 22:06
님 이거 한번만 봐주세요. 일반 xe_official view_document.html 젤 상단에 <script type="text/javascript"> jQuery(document).ready( function() { phone_format('01066239285'); } ); function phone_format(num){ regexObj = /^((01[1|6|7|8|9])[1-9]+[0-9]{6,7})|(010[1-9][0-9]{7})$/; if(!regexObj.test(num)){ alert('잘못된 휴대폰 번호입니다'); return false; } else { return true; }; } </script> 라고 추가하고 아무 글이나 읽어보세요. http://www.cinecafe.kr/TEST/6057 이 글 한번 읽어보세요. 님도 한번 테스트 해보세요. XE에서만 잘못된 휴대폰 번호라고 뜨네요;;; 로컬에서 테스트하면 정상으로 나오는데요ㅠㅠㅠ -
CMD
2013.02.23 22:17
여기에 적으신 것과 view_document.html에 삽입하신 것의 정규식이 다른데요? (붉은색 볼드체)
여기에 적은 것: /^((01[1|6|7|8|9])[1-9]+[0-9]{6,7})|(010[1-9][0-9]{7})$/;
view_document.html에 삽입한 것: /^((01[1|6|7|8|9])[1-9]+[0-9]67)|(010[1-9][0-9]7)$/
-
시니시즘
2013.02.23 22:36
헐!!!!!!!!!!!!!!!!!!!! 진짜네요. 드디어 원인을 발견했네요. {}안의 내용이 XE에서는 변수값 출력으로 인식해서 코드가 변조 되버리는군요;;; 제가 왜 바보같이 브라우저 소스보기로 디버깅을 안했을까요;; 이런 경우는 처음인데 { }를 XE에서 사용하는 방법 같은게 있나요?; 아 아무튼 정말 감사합니다. 중요란 작업이었는데 수고비라도 드리고 싶네요ㅠㅠ -
CMD
2013.02.23 22:49
직접 삽입하지 마시고 js파일로 만들어서 로드하도록 해보세요~
<!--%import("js/check.js")-->
-
시니시즘
2013.02.23 23:00
아 그렇게 해야 겠네요^^ 여러 차례 답변 감사합니다~
정규식이 잘못된 것 같네요
http://www.gskinner.com/RegExr/
위 사이트에서 테스트해 보세요~