자바스크립트 정규식을 이용한 체크 (정수, 한글 등)

자바스크립트 정규식을 이용한 체크 (정수, 한글 등)


  1. /*-------------------------------------------------------------------------------*/
  2. /*
  3. 한글의 경우 키 입력시 바로바로 작업이 안되기 때문에
  4. onchange 와 onblur 등 이벤트도 같이 등록.
  5. */
  6. // 한글만 입력받기 (초성체 무시)
  7. // 나머지 글자 무시
  8. function nr_han(this_s,type){
  9. /*
  10. type
  11. -> 'c' : 초성 포함
  12. -> 's' : 초성 포함 + 공백 포함
  13. -> '' : 초성, 공백 무시
  14. */
  15. temp_value = this_s.value.toString();
  16. regexp = '';
  17. repexp = '';
  18. switch(type){
  19. case 'c': regexp = /[^ㄱ-ㅎ가-힣]/g;break;
  20. case 's': regexp = /[^ㄱ-ㅎ가-힣\s]/g;break;
  21. case '': regexp = /[^가-힣]/g; break;
  22. default : regexp = /[^ㄱ-ㅎ가-힣\s]/g;
  23. }
  24. if(regexp.test(temp_value))
  25. {
  26. temp_value = temp_value.replace(regexp,repexp);
  27. this_s.value = temp_value;
  28. }
  29. }
  30. /*-------------------------------------------------------------------------------*/
  31. // 한글만 입력받기 (초성체 포함)
  32. // 나머지 글자 무시
  33. function nr_han_cho(this_s){
  34. nr_han(this_s,'c');
  35. }
  36. /*-------------------------------------------------------------------------------*/
  37. // 한글만 입력받기 (초성체 포함, 공백 포함)
  38. // 나머지 글자 무시
  39. function nr_han_cho_space(this_s){
  40. nr_han(this_s,'s');
  41. }
  42. /*-------------------------------------------------------------------------------*/
  43. function nr_numeng(this_s){
  44. temp_value = this_s.value.toString();
  45. regexp = /[^0-0a-zA-Z]/g;
  46. repexp = '';
  47. temp_value = temp_value.replace(regexp,repexp);
  48. this_s.value = temp_value;
  49. }
  50. /*-------------------------------------------------------------------------------*/
  51. // 나머지 글자 무시
  52. function nr_num(this_s,type){
  53. /*
  54. type
  55. -> 'int' : 양의 정수
  56. -> 'float' : 양의 실수
  57. -> '-int' : 음의 정수 포함
  58. -> '-int' : 음의 실수 포함
  59. */
  60. temp_value = this_s.value.toString();
  61. regexp = /[^-\.0-9]/g;
  62. repexp = '';
  63. temp_value = temp_value.replace(regexp,repexp);
  64. regexp = '';
  65. repexp = '';
  66. switch(type){
  67. case 'int': regexp = /[^0-9]/g; break;
  68. case 'float':regexp = /^(-?)([0-9]*)(\.?)([^0-9]*)([0-9]*)([^0-9]*)/; break;
  69. case '-int': regexp = /^(-?)([0-9]*)([^0-9]*)([0-9]*)([^0-9]*)/;break;
  70. case '-float':regexp = /^(-?)([0-9]*)(\.?)([^0-9]*)([0-9]*)([^0-9]*)/; break;
  71. default : regexp = /[^0-9]/g; break;
  72. }
  73. switch(type){
  74. case 'int':repexp = '';break;
  75. case 'float':repexp = '$2$3$5';break;
  76. case '-int': repexp = '$1$2$4';break;
  77. case '-float':repexp = '$1$2$3$5'; break;
  78. default : regexp = /[^0-9]/g; break;
  79. }
  80. temp_value = temp_value.replace(regexp,repexp);
  81. this_s.value = temp_value;
  82. }
  83. // 양의 정수만 입력받기
  84. function nr_num_int(this_s){
  85. nr_num(this_s,'int');
  86. }
  87. // 양의 실수만 입력받기
  88. function nr_num_float(this_s){
  89. nr_num(this_s,'float');
  90. }
  91. /*-------------------------------------------------------------------------------*/
  92. // 영어만 입력받기 (대소문자)
  93. // 나머지 글자 무시
  94. function nr_eng(this_s,type){
  95. temp_value = this_s.value.toString();
  96. regexp = '';
  97. repexp = '';
  98. switch(type){
  99. case 'small':regexp = /[^a-z]/g;break;
  100. case 'big':regexp = /[^A-Z]/g;break;
  101. case 'all':regexp = /[^a-z]/i;break;
  102. default :regexp = /[^a-z]/i;break;
  103. }
  104. temp_value = temp_value.replace(regexp,repexp);
  105. this_s.value = temp_value;
  106. }
  107. // 영어만 입력받기 (소문자)
  108. // 나머지 글자 무시
  109. function nr_eng_small(this_s){
  110. nr_eng(this_s,'small');
  111. }
  112. // 영어만 입력받기 (대문자)
  113. // 나머지 글자 무시
  114. function nr_eng_big(this_s){
  115. nr_eng(this_s,'big');
  116. }
  117. // 전화번호 규격에 맞게 DDD-MM~M-XXXX
  118. // 나머지 글자 무시
  119. function nr_phone(this_s)
  120. {
  121. temp_value = this_s.value.toString();
  122. temp_value = temp_value.replace(/[^0-9]/g,'');
  123. temp_value = temp_value.replace(/(0(?:2|[0-9]{2}))([0-9]+)([0-9]{4}$)/,"$1-$2-$3");
  124. this_s.value = temp_value;
  125. }
  126. /*-------------------------------------------------------------------------------*/
  127. // 주민등록 번호 규격에 맞게 123456-1234567 //검증하지 않음.
  128. // 나머지 글자 무시
  129. function nr_jumin(this_s)
  130. {
  131. temp_value = this_s.value.toString();
  132. temp_value = temp_value.replace(/[^0-9]/g,'');
  133. temp_value = temp_value.substr(0,13);
  134. temp_value = temp_value.replace(/([0-9]{6})([0-9]{7}$)/,"$1-$2");
  135. this_s.value = temp_value;
  136. }
  137. /*-------------------------------------------------------------------------------*/
  138. // 사업자 등록 번호 규격에 맞게 123-12-12345 //검증하지 않음.
  139. // 나머지 글자 무시
  140. function nr_company_num(this_s)
  141. {
  142. temp_value = this_s.value.toString();
  143. temp_value = temp_value.replace(/[^0-9]/g,'');
  144. temp_value = temp_value.substr(0,10);
  145. temp_value = temp_value.replace(/([0-9]{3})([0-9]{2})([0-9]{5}$)/,"$1-$2-$3");
  146. this_s.value = temp_value;
  147. }
  148. //----------------------------------------------=--------------------------------------




* 파트너스 활동을 통해 일정액의 수수료를 제공받을 수 있음
작성자 소개
초이 프로필
WrapUp 블로거

초이

반려견을 좋아하고, 차를 좋아하고, 여행을 좋아하고, 맛집을 찾아 즐기는 웹 개발자 입니다^^