asp. net 유사 MaskTextBox 기능 구현
37561 단어 asp.net
1. 정규 표현 식 분석 문호 형식
문호 형식의 특정 부분 은 $$로 나 뉘 어 있 습 니 다. 우 리 는 차례대로 정규 와 일치 하 는 경계 점 으로 문호 형식 을 고정 적 이 고 가 변 적 인 부분 으로 나 눈 다음 에 순서대로 텍스트 상 자 를 동적 으로 생 성 할 수 있 습 니 다.
정규 표현 식:
1: var regPa = new RegExp("\\$(.*?)\\$","g");
일치 하 는 문자열:
1: pattArr = regPa.exec(fileNumformat)
2. 동적 생 성 텍스트 상자
1: var regPa = new RegExp("\\$(.*?)\\$","g");
2: var pattArr;
3: var iIndex=0; //
4: var iCount=0; //
5: var strSplit="<span name='lbl_fileNum' id='span_fileNum_blank'> </span>"; //
6: while((pattArr = regPa.exec(fileNumformat))!=null)
7: {
8: var textBoxStr=""; //
9: if(iIndex!=pattArr.index)
10: {
11: textBoxStr="<input name='txt_fileNum' id='txt_fileNum_"+(++iCount)+"' value='"+fileNumformat.substring(iIndex,pattArr.index)+"' type='text' style='width:80px'/>"+strSplit;
12: }
13: iCount++;
14: if(pattArr[1]=="0") //
15: {
16: textBoxStr+="<input name='txt_fileNum' id='txt_fileNum_num"+"' value='' type='text' style='width:40px'/>"+strSplit;
17: }
18: else
19: {
20: textBoxStr+="<input name='txt_fileNum' id='txt_fileNum_'"+iCount+"' value='' type='text' style='width:40px'/>"+strSplit;
21: }
22: $("#span_must").before(textBoxStr);
23: iIndex=pattArr.index+pattArr[0].length;
24: }
25: if(iIndex<fileNumformat.length)
26: {
27: $("#span_must").before("<input name='txt_fileNum' id='txt_fileNum_'"+(++iCount)+"' value='"+fileNumformat.substring(iIndex)+"' type='text' style='width:80px'/>"+strSplit)
28: }
위의 코드 는 $$$가 처음, 마지막, 두 개의 $$가 붙 어 있 는 상황 을 고려 하여 번호 형식의 각 부분 을 정확하게 분할 할 수 있 습 니 다.특별 처리 부분 은 현재 특정 형식 이 $0 $즉 번호 라면 뒤쪽 jquery 에서 번 호 를 가 져 올 수 있 도록 특정한 id 를 주 는 것 입 니 다.
3. 작성 한 번호 와 특정 번 호 를 가 져 옵 니 다.
1: var str="";
2: var currNum="";
3: $("[name='txt_fileNum']").each(function(){
4: str+=$(this).val();
5: });
6: alert(" :"+str+" :"+$("#txt_fileNum_num").val());
4. 동적 으로 생 성 된 html 라벨 제거
만약 에 여러 번 일치 하 는 문호, 즉 문호 형식 을 동적 으로 선택 할 수 있다 면 원래 동적 으로 생 성 된 html 요 소 를 제거 한 다음 에 다시 분석 하고 생 성 해 야 합 니 다.
1: //
2: $("[name='txt_fileNum'],[name='lbl_fileNum']").remove();
효과
6. 모든 소스 코드
1: function SetFileNumTextBox(fileNumformat)
2: {
3: //
4: $("[name='txt_fileNum'],[name='lbl_fileNum']").remove();
5:
6: if (fileNumformat == "" || fileNumformat == undefined)
7: {
8: $("#span_must").before("<span name='lbl_fileNum' id='span_fileNum_alert' style='color: #FF0000'> </span>");
9: return;
10: }
11:
12: var regPa = new RegExp("\\$(.*?)\\$","g");
13: var pattArr;
14: var iIndex=0; //
15: var iCount=0; //
16: var strSplit="<span name='lbl_fileNum' id='span_fileNum_blank'> </span>"; //
17: while((pattArr = regPa.exec(fileNumformat))!=null)
18: {
19: var textBoxStr=""; //
20: if(iIndex!=pattArr.index)
21: {
22: textBoxStr="<input name='txt_fileNum' id='txt_fileNum_"+(++iCount)+"' value='"+fileNumformat.substring(iIndex,pattArr.index)+"' type='text' style='width:80px'/>"+strSplit;
23: }
24: iCount++;
25: if(pattArr[1]=="0") //
26: {
27: textBoxStr+="<input name='txt_fileNum' id='txt_fileNum_num"+"' value='' type='text' style='width:40px'/>"+strSplit;
28: }
29: else
30: {
31: textBoxStr+="<input name='txt_fileNum' id='txt_fileNum_'"+iCount+"' value='' type='text' style='width:40px'/>"+strSplit;
32: }
33: $("#span_must").before(textBoxStr);
34: iIndex=pattArr.index+pattArr[0].length;
35: }
36: if(iIndex<fileNumformat.length)
37: {
38: $("#span_must").before("<input name='txt_fileNum' id='txt_fileNum_'"+(++iCount)+"' value='"+fileNumformat.substring(iIndex)+"' type='text' style='width:80px'/>"+strSplit)
39: }
40: $("#span_must").before("<span name='lbl_fileNum' id='span_fileNum_help' style='color: #FF0000'>"+fileNumformat+"</span>");
41: document.getElementById(<%="\""+hid_currNum.ClientID+"\"" %>).value=iCount;
42: }
입력 매개 변 수 는 문호 형식, spanmust 는 효과 그림 의 '*' 로 html 요 소 를 삽입 하 는 표지 위치 입 니 다.
호환성
RegExp 의 lastIndex 속성 이 Firefox 와 Chrome 에 존재 하지 않 기 때문에 문자열 내용 을 캡 처 하 는 데 오류 가 발생 하 는 문 제 를 해결 하 였 습 니 다. 일치 하 는 문자열 길이 에 index 를 추가 하여 lastIndex 의 계산 을 교체 합 니 다. 테스트 를 통 해 IE, Firefox, Chrome 은 문제 가 없습니다.
행운 을 빕 니 다!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
작업 중 문제 해결 - (win 2003 asp. net) Session 과 페이지 전송 방법 으로 해결 방안 을 정상적으로 사용 할 수 없습니다.또한 F 는 처음에 우리 의 BP & IT 프로젝트 팀 이 Forms 폼 검증 을 사용 했다 고 판단 할 수 있 습 니 다. 페이지 를 뛰 어 넘 는 것 은http://hr.bingjun.cc/MyTask/MyTas...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.