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