> 웹 프론트엔드 > JS 튜토리얼 > js_javascript 기술에서 정규식을 동적으로 연결하는 두 가지 방법

js_javascript 기술에서 정규식을 동적으로 연결하는 두 가지 방법

WBOY
풀어 주다: 2016-05-16 16:57:25
원래의
2672명이 탐색했습니다.

방법 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>
관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
최신 이슈
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿