JavaScript의 변수가 있는 동적 정규식
JavaScript의 정규식은 패턴 일치 및 조작을 위한 강력한 도구를 제공합니다. 그러나 이러한 패턴에 변수를 삽입하는 것은 어려울 수 있습니다.
다음 코드 조각을 고려하세요.
function(input) { var testVar = input; string = ... string.replace(/ReGeX + testVar + ReGeX/, "replacement") }
이 코드는 문자열에서 특정 패턴의 모든 항목을 제공된 문자열로 바꾸려고 시도합니다. 교체 문자열. 그러나 정규식 내에서 변수를 직접 연결할 수 없기 때문에 실패합니다.
해결책: 템플릿 문자열 사용
ES6 JavaScript에서는 템플릿 문자열을 활용할 수 있습니다. 변수를 사용하여 정규식을 동적으로 생성합니다. 수행 방법은 다음과 같습니다.
const regex = new RegExp(`ReGeX${testVar}ReGeX`); ... string.replace(regex, "replacement");
이 예에서 RegExp 생성자는 템플릿 문자열을 첫 번째 인수로 받아들입니다. 템플릿 문자열에는 보간된 변수 testVar가 있는 원래 정규식 패턴이 포함되어 있습니다. 백틱(``)은 템플릿 문자열을 나타냅니다.
ES6과 Pre-ES6
ES6 이전에는 동일한 결과를 얻기 위해 더 자세한 방법을 사용해야 했습니다. 결과:
var regex = new RegExp("ReGeX" + testVar + "ReGeX"); ... string.replace(regex, "replacement");
이전 구문은 여전히 작동하지만 단순성과 가독성 때문에 템플릿 문자열 방법이 선호됩니다.
주의: 변수 이스케이프
삽입하는 변수에 잠재적인 악성 콘텐츠(예: 사용자 입력)가 있는 경우 주입 공격을 방지하기 위해 해당 변수를 이스케이프 처리해야 한다는 점에 유의하는 것이 중요합니다. 이스케이프에는 escape() 또는 encodeURIComponent() 함수를 사용할 수 있습니다.
위 내용은 JavaScript에서 변수를 사용하여 정규식을 동적으로 생성하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!