728x90
반응형
자바스크립트는 RexEx 정규식을 사용해서 불필요한 문자를 제거할 수 있습니다
정규식은 /[정규식으로 제거할 패턴]/gim 방식으로 선언합니다
gim (replaceAll) : 전역적으로 문자열에 포함된 같은 패턴의 문자를 모두 제거하기 위해서 사용합니다
replace 를 사용해서 특정 패턴 문자 인 경우 해당 문자를 삭제합니다
정규식 패턴
- [a-z] : 영어 소문자 지정
- [A-Z] : 영어 대문자 지정
- [ㄱ-ㅎㅏ-ㅣ가-힣] : 한글 지정
- [.,!?] : 허용하고자하는 특수문자 지정
#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
// 숫자, 공백 제거
let reg = /[0-9 ]/gim;
// 숫자, 공백 허용 let reg = /[^0-9]/gi; // 영어(소문자, 대문자), 공백 모두 제거
let reg = /[a-zA-Z ]/gim;
// 특수문자, 괄호, 점, 공백 모두 제거
let reg = /[`~!@#$%^&*()_|+\-=?;:'",.<>\{\}\[\]\\\/ ]/gim;
// 특수문자, 괄호, 점 모두 제거 - 공백은 제거 안함
let reg = /[`~!@#$%^&*()_|+\-=?;:'",.<>\{\}\[\]\\\/]/gim;
//특수문자, 괄호, 공백 모두 제거 - 점은 제거 안함
let reg = /[`~!@#$%^&*()_|+\-=?;:'"<>\{\}\[\]\\\/ ]/gim;
//정규식에 해당하는 문자를 replace 로 제거
let resultData = originalData.replace(reg, "");
|
cs |
#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
|
function setSysEvent(){
<%-- 숫자만 입력 처리--%>
$('.onlyNumber').on('keydown', function(e) {
e = e || window.event;
var keyID = (e.which) ? e.which : e.keyCode;
if((keyID == 8 || keyID == 9 || keyID == 188) || ( keyID >=37 && keyID <= 40 ) || ( keyID >=48 && keyID <= 57 ) || ( keyID >=96 && keyID <= 105 ) ){
return true;
}else{
return false;
}
});
<%-- 콤마를 포함한 숫자만 입력(자동 콤마) 처리--%>
$(".commaNumber").on('keyup', function(e) {
$(this).val($(this).val().replace(',',''));
$(this).val($(this).val().replace(/\B(?=(\d{3})+(?!\d))/g, ","));
});
$(".commaNumber").on('keydown', function(e) {
e = e || window.event;
var keyID = (e.which) ? e.which : e.keyCode;
if((keyID == 8 || keyID == 9 || keyID == 188) || ( keyID >=37 && keyID <= 40 ) || ( keyID >=48 && keyID <= 57 ) || ( keyID >=96 && keyID <= 105 ) ){
return true;
}else{
return false;
}
});
<%-- 점을 포함한 숫자만 입력 처리--%>
$(".periodNumber").on('keyup', function(e) {
var num_arr = [
97, 98, 99, 100, 101, 102, 103, 104, 105, 96,
48, 49, 50, 51, 52, 53, 54, 55, 56, 57
]
var key_code = ( e.which ) ? e.which : e.keyCode;
if( num_arr.indexOf( Number( key_code ) ) != -1 ){
var len = $(this).val().length;
if( len == 4 ) $(this).val($(this).val() + ".");
if( len == 7 ) $(this).val($(this).val() + ".");
}
});
$(".periodNumber").on('keydown', function(e) {
e = e || window.event;
var keyID = (e.which) ? e.which : e.keyCode;
if((keyID == 8 || keyID == 9 || keyID == 110 || keyID == 190) || ( keyID >=37 && keyID <= 40 ) || ( keyID >=48 && keyID <= 57 ) || ( keyID >=96 && keyID <= 105 ) ){
return true;
}else{
return false;
}
});
}
|
cs |
@
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
|
// 체크숫자,한글
var chkNumberHan =/[~!@\#$%^&*\()\-=+_'\;<>\/.\`:\"\\,\[\]?|{}ㄱ-ㅎㅏ-ㅣ가-힣]/gi;
// 숫자공백삭제
var chkNumberNo =/[0-9]/gi;
// 숫자허용
var chkNumberYes =/[^0-9]/gi;
// 특수문자, 괄호, 점, 공백 모두 제거
var chkSpecial =/[`~!@#$%^&*()_|+\-=?;:'",.<>\{\}\[\]\\\/ ]/gim;
var email_rule =/^[0-9a-zA-Z]([-_.]?[0-9a-zA-Z])*@[0-9a-zA-Z]([-_.]?[0-9a-zA-Z])*.[a-zA-Z]{2,3}$/i;
$(document)
.on("keydown", ".onlyNumber", function(e) {
var rpStep0 =$(this).val();
var rpStep1 =rpStep0.replace(chkNumberYes, "");
$(this).val(rpStep1);
})
.on("keyup", ".onlyNumber", function(e) {
var rpStep0 =$(this).val();
var rpStep1 =rpStep0.replace(chkNumberYes, "");
var rpStep2 =rpStep1.replace(chkSpecial, "");
$(this).val(rpStep2);
})
.on("keydown", ".noNumber", function(e) {
var temp =$(this).val();
if(temp.indexOf(chkNumberNo)){
temp =temp.replace(chkNumberNo,"");
}
if(temp.indexOf(chkSpecial)){
temp =temp.replace(chkSpecial,"");
}
$(this).val(temp);
})
.on("keyup", ".noNumber", function(e) {
var temp =$(this).val();
if(temp.indexOf(chkNumberNo)){
temp =temp.replace(chkNumberNo,"");
}
if(temp.indexOf(chkSpecial)){
temp =temp.replace(chkSpecial,"");
}
$(this).val(temp);
})
|
cs |
@
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
<c:set var="lStudentEmail0" value="${fn:split(result.lStudentEmail,'@')[0]}" />
<c:set var="lStudentEmail1" value="${fn:split(result.lStudentEmail,'@')[1]}" />
<input type="text" id="email_id" name="lStudentEmail0" value="${lStudentEmail0}" title="이메일 아이디" placeholder="이메일" maxlength="25" style="width:36%" />
<span class="v_middle">@</span>
<input type="text" id="email_domain" name="lStudentEmail1" value="${lStudentEmail1}" title="도메인" placeholder="도메인" maxlength="18" style="width:30%" />
<select name="bbsEmail3" onChange="fn_setEmailDomain(this.value); return false;" style="cursor:pointer; font-size: 16px; border:1px solid #e9e9e9; height:30px; border-radius:4px; width:28%;">
<option value="naver.com" <c:if test="${'naver.com' eq longStudentEmail1 || empty longStudentEmail1}">selected</c:if> >naver.com</option>
<option value="gmail.com" <c:if test="${'gmail.com' eq longStudentEmail1}">selected</c:if> >gmail.com</option>
<option value="hanmail.net" <c:if test="${'hanmail.net' eq longStudentEmail1}">selected</c:if> >hanmail.net</option>
<option value="hotmail.com" <c:if test="${'hotmail.com' eq longStudentEmail1}">selected</c:if> >hotmail.com</option>
<option value="korea.com" <c:if test="${'korea.com' eq longStudentEmail1}">selected</c:if> >korea.com</option>
<option value="nate.com" <c:if test="${'nate.com' eq longStudentEmail1}">selected</c:if> >nate.com</option>
<option value="yahoo.com" <c:if test="${'yahoo.com' eq longStudentEmail1}">selected</c:if> >yahoo.com</option>
<option value="">직접입력</option>
</select>
|
cs |
@
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
|
function fn_chkEmail(){
var email_rule =/^[0-9a-zA-Z]([-_.]?[0-9a-zA-Z])*@[0-9a-zA-Z]([-_.]?[0-9a-zA-Z])*.[a-zA-Z]{2,3}$/i;
var email_id =$("#email_id").val();
var email_domain =$("#email_domain").val();
var mail ="";
if(!email_id){
alert("이메일을 입력해주세요");
$("#email_id").focus();
return false;
}
if(!email_domain){
alert("도메인을 입력해주세요");
$("#email_domain").focus();
return false;
}
mail = email_id+"@"+email_domain;
$("#hdLongStudentEmail").val(mail);
if(!email_rule.test(mail)){
alert("이메일을 형식에 맞게 입력해주세요.");
return false;
}
}
|
cs |
@
728x90
반응형