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에 따라 라이센스가 부여됩니다.