JS 정규 RegExp.test() 사용 시 주의사항을 예시와 함께 분석한 글입니다. 참고할 수 있도록 모든 사람과 공유하세요.
먼저 다음 코드를 살펴보세요.
// 2012-12-12 12:12:12 var regex = /\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}/g; // true alert(regex.test("2012-12-12 12:12:12")); // false alert(regex.test("2012-12-12 12:12:12"));
실행 결과는 이미 코드 주석에 나와 있습니다. 동일한 정규 표현식의 경우 객체 정규 표현식은 반복적으로 호출할 수 없습니다. 처음에는 true를 반환하고 두 번째에는 false를 반환합니다. 분명히 이 효과는 우리가 원하는 것이 아닙니다. 이는 RegExp.test() 메서드가 처음으로 위치 0부터 검색을 시작하고 두 번째 검색 위치가 0이 아니므로 일치할 수 없기 때문입니다.
해결책은 매우 간단합니다. 매번 0번째 위치부터 테스트를 시작하도록 하면 됩니다.
// 2012-12-12 12:12:12 var regex = /\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}/g; // true alert(regex.test("2012-12-12 12:12:12")); regex.lastIndex = 0; // true alert(regex.test("2012-12-12 12:12:12"));
이 기사가 JavaScript 프로그래밍에 종사하는 모든 사람에게 도움이 되기를 바랍니다.
JS 일반 RegExp.test() 사용 시 주의사항(반복적이지 않음)을 더 알아보려면 PHP 중국어 웹사이트를 참고하세요!