방법 1:
프로젝트를 작업할 때 양식 입력의 정확성을 확인하기 위해 js를 사용해야 하는 경우가 있습니다. 이 경우 js 정규식을 사용해야 합니다. 예를 들어, 월을 확인하려는 경우 형식은 'yyyy-MM'입니다. 이 정규식은 작성하기가 매우 간단합니다. 실제로 작성할 수 없는 경우 Google 및 Baidu를 사용할 수도 있습니다. . 인터넷에 많은 예가 있습니다! 그러나 js 정규식을 이런 식으로 작성하면 새로운 문제도 발생합니다. 구성 파일의 월 형식이 변경되면 어떻게 될까요? 'yyyyMM'으로 변경하시겠습니까, 아니면 'yyyy_MM'으로 변경하시겠습니까...? ? js의 정규식을 계속해서 변경해야 합니까? ?
이제 우리는 다음과 같은 질문을 던져야 합니다. 구성 파일을 수정한 후에는 더 이상 코드를 건드릴 필요가 없습니다.
저자는 js 매뉴얼을 살펴보았지만 문자열을 정규식으로 변환하는 방법을 찾지 못했습니다. 그러나 이 문제는 eval() 메서드를 사용하여 스크립트를 동적으로 실행하면 간접적으로 해결할 수 있습니다. 따라서 더욱 다양한 코드를 작성할 수 있습니다!
위 예에 대한 일반적인 솔루션은 아래에 게시되어 있습니다.
다음과 같이 코드 코드를 복사합니다.
/**
* 월 형식 입력이 올바른지 확인
* 패턴: 월 형식 문자열
* id: 양식 ID
*/
함수 verifyMonth(패턴, ID) {
var text = document.getElementById(id);
var MonthStr = text.value;
var SplitChar = "";
if(pattern.length > 6) SplitChar = 패턴.하위 문자열(4, 패턴.길이 - 2);
eval("var re = ///d{4}" + SplitChar + "//d{2}$/;");
//var re = //d{4}-/d{2}$/;
if(monthStr.match(re) == null) {
Alert("입력은 [" + 패턴 + "] 형식을 참조하세요!/n" + "예: /"2010" + SplitChar + "11/" 또는 /"2010" + SplitChar + "03/"");
text.value = "";
text.focus();
거짓을 반환;
}
사실을 반환;
}
다음과 같이 코드 코드를 복사합니다.
/**
* 월 형식 입력이 올바른지 확인
* 패턴: 월 형식 문자열
* id: 양식 ID
*/
함수 verifyMonth(패턴, ID) {
var text = document.getElementById(id);
var MonthStr = text.value;
var SplitChar = "";
if(pattern.length > 6) SplitChar = 패턴.하위 문자열(4, 패턴.길이 - 2);
eval("var re = ///d{4}" + SplitChar + "//d{2}$/;");
//var re = //d{4}-/d{2}$/;
if(monthStr.match(re) == null) {
Alert("입력은 [" + 패턴 + "] 형식을 참조하세요!/n" + "예: /"2010" + SplitChar + "11/" 또는 /"2010" + SplitChar + "03/"");
text.value = "";
text.focus();
거짓을 반환;
}
사실을 반환;
}
한 가지 주목할 만한 점은 스크립트 문자열을 동적으로 작성하고 실행을 위해 eval() 메서드에 전달할 때 '/' 문자를 이스케이프해야 한다는 것입니다.
방법 2:
다음과 같이 코드 코드를 복사합니다.
<스크립트>
var n=new Array( ".htm ", ".html ", ".shtml ");
//var Pattern1 = new RegExp( "//w+// "+n[0]+ "$ ", "gi ");
var s1= "b.shtml ";
var 결과 = 거짓;
for(var i=0;i <n.length;i++)
{
Pattern1 = new RegExp( "//w+// "+n[i]+ "$ ", "gi ");
결과|=pattern1.test(s1);
}
경고(부울(결과));
</script>