jQuery_jquery를 기반으로 하는 프런트엔드 데이터에 대한 범용 검증 라이브러리
May 16, 2016 pm 06:03 PM그래서 천천히 이전 개발을 요약하기 시작했고, 더 간단하게 만들기 위해 몇 가지 분산된 방법을 작성하고 더 적은 코드를 작성하여 더 많은 검증을 완료했습니다. 이전 아이디어는 매개 변수를 전달하고, 확인할 컨트롤의 ID를 전달한 다음, 데이터 형식을 확인하려는 경우 해당 정규식을 전달하는 것이었습니다. 프로젝트가 완료된 후 전체 프로젝트를 요약해 보면 이런 방식으로 작성하는 것이 코드를 많이 절약하지 못한다는 것을 알게 되었고, 설명이 있음에도 불구하고 제가 작성한 라이브러리가 그다지 유용하지 않다는 학생들이 여러 곳에서 보고했습니다. 그리고 아직은 잘 이해가 안 되고, 빨리 시작할 수도 없고, 버그도 많이 남아 있을 테니 차라리 컨트롤 하나하나를 하나씩 검증하는 방식을 선호하는 경우가 많습니다. JS 파일의 코드는 200줄에서 300줄에 불과하고, 상대적으로 게으른데, 주석은 한 문장만 적게 작성할 수 있으므로 문제 발생 후 유지 관리가 매우 번거롭습니다. JS 디버깅.
최근 출장을 갔을 때 이전 내용을 기반으로 더 캡슐화하여 통화 시 JS 코드를 작성하지 않는 것이 가장 좋습니다. . jQuery의 강력한 선택기가 생각나는데, 유효성 검사를 하거나 페이지에서 값을 가져와야 할 때 페이지 요소에 몇 가지 사용자 정의 속성을 추가하는 경우가 많았습니다. 따라서 확인을 수행하려면 요소에 몇 가지 사용자 정의 속성을 추가하고 JS 코드를 호출하기만 하면 됩니다. 이것이 가장 간단합니다.
이 간단한 유효성 검사 라이브러리는 포커스가 손실되었을 때의 유효성 검사와 제출 버튼을 클릭했을 때의 유효성 검사를 포함하여 기본 유효성 검사의 90%를 완료할 수 있어야 합니다. 백엔드에 대해 제가 할 수 있는 일은 아무것도 없으며, 그것을 사용하는 사람을 위해서만 작성할 수 있습니다 :).
JS 코드가 너무 작아서 직접 게시하지는 않겠습니다. 기사 마지막에 첨부 파일이 있으며, 이전에 직접 작성한 JS 파일도 포함되어 있습니다. Renren.com을 모방한 플러그인입니다.
<script src="Js/jquery -1.4.2.min.js" type="text/javascript"></script>
<script src="Js/ks.ext.msgbox.js" type="text/javascript"> ;< /script>
<script src="Js/validata.js" type="text/javascript"></script>
<form name="form1" id="form1 " action= "#" method="post">
이메일:<input type="text" id="email" name="email"
validata="email" errormsg="이메일 형식 가 올바르지 않습니다." emptyerrormsg="사서함은 비워둘 수 없습니다."empty="false" /><br />
휴대폰:<input type="text" name="phone" validata="phone"
errormsg ="휴대폰 형식이 잘못되었습니다."emptyerrormsg="휴대폰을 비워 둘 수 없습니다."empty="true" /><br />전화번호:<input type="text" 이름 ="tel" validata= "tel"
errormsg="전화 형식이 잘못되었습니다."emptyerrormsg="전화번호를 비워둘 수 없습니다."empty="true" /><br />신분증:< input type="text " name="idcard" validata="idcard" errormsg="신분증 형식이 잘못되었습니다."
emptyerrormsg="신분증은 비워둘 수 없습니다."empty="false" /><br /> ;
비밀번호 코드: <input type="password" name="pwd" validata="empty"
empty="false"emptyerrormsg="비밀번호는 비워둘 수 없습니다." /><br />
비밀번호 확인 :<input type="password" name="pwd1" validata="password2" errormsg="비밀번호 확인은 비워둘 수 없습니다."
diffmsg="두 비밀번호 입력이 일치하지 않습니다." />< br />
<input type="submit" id="submit1" value="Submit" />
</form>
예: 이메일 확인 :
validata 값은 완전히 맞춤설정할 수 없으며 JS에서 맞춤설정되었습니다. validata의 값에 따라 다른 정규식을 반환하는 것입니다. 방법은 다음과 같으며, 선택적 validdata의 값은 다음 방법의 regName 값이 됩니다. 사용자가 이를 표시하고 싶다면 간단히 다른 표현을 추가하면 됩니다.
//다른 검증 내용에 따라 해당 정규식을 반환합니다.
function returnRegString(regName) {
if (regName == "email") {
return "^([ a- zA-Z0-9_.-]) @(([a-zA-Z0-9-]) .) ([a-zA-Z0-9]{2,4}) $"; //이메일
} else if (regName == "tel") {
return "^(86)?(-)?(0[0-9]{2,3})?(-)?([0- 9] {7,8})(-)?([0-9]{3,5})?$"; //전화
} else if (regName == "phone") {
return "^ (13[0-9]|15[0-9]|18[0-9])([0-9]{8})$"; //휴대폰
} else if (regName == " 우편번호") {
return "^([0-9]{6})$"; //우편번호
} else if (regName == "number") {
return "^(0 | ([1-9] [0-9]*))(.[0-9] )?$"; //숫자
} else if (regName == "decimal") {
return " ^ [0-9] ([.][0-9] )?$"; //부동 소수점
} else if (regName == "money") {
return "^([0-9 ] )$"; //통화
} else if (regName == "website") { //웹사이트
return "(http://|https://){0,1}[w/ . ?&=] ";
} else if (regName == "fax") { //팩스
return "^[ ]{0,1}([0-9]){1,3} [ ]?([-]?(([0-9])|[ ]){1,12}) $";
} else if (regName == "int") { //정수
return "^(-){0,1}d $";
} else if (regName == "pInt") { //양의 정수
return "^d $"
} else if ( regName == "nInt") { //음수
return "^-d $";
} else if (regName == "nandl") { //숫자 및 문자
return "[ a -zA-Z0-9]";
} else if (regName == "chinese") { //한자 포함 여부
return "[u4e00-u9fa5]";
}
}
더 이상 말도 안되는 소리는 하지 마세요. 검증 라이브러리는 아직 완전히 테스트되지 않았습니다. 사용해 보고 싶으시다면 문제나 다른 더 나은 개선 방법을 찾으면 알려주시기 바랍니다. . 기성품이고 비교적 성숙한 JS 검증 라이브러리가 있어야 하지만 직접 작성하고 싶습니다. 또 다른 스크린샷을 찍어보겠습니다. 버튼이 인증에 실패하면 팝업 레이어에 인증이 통과되지 않은 곳이 표시됩니다. 팝업 레이어는 제가 이전에 Renren의 효과를 모방하기 위해 작성한 팝업 레이어 효과입니다. .

인기 기사

인기 기사

뜨거운 기사 태그

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제









