반응형
변수에서 Javascript Regexp 동적 생성? [복제]
이 질문에 이미 답변이 있습니다.
- 정규식에서 변수를 어떻게 사용합니까? 18 답변
두 개의 정규식 패턴을 하나로 구성하는 방법은 무엇입니까?
예를 들어 긴 패턴 하나와 작은 패턴 하나가 있으면 긴 패턴 앞에 작은 패턴을 넣어야합니다.
var pattern1 = ':\(|:=\(|:-\(';
var pattern2 = ':\(|:=\(|:-\(|:\(|:=\(|:-\('
str.match('/'+pattern1+'|'+pattern2+'/gi');
이것은 작동하지 않습니다. 문자열을 연결하면 모든 슬래시가 사라집니다.
다음을 사용해야합니다 RegExp
.
str.match(new RegExp(pattern1+'|'+pattern2, 'gi'));
문자열을 연결하면 모든 슬래시가 사라집니다.
특수 정규식 문자 (예 :)를 이스케이프하기 위해 패턴에 백 슬래시가있는 경우 문자열에 두 개의 백 슬래시 \(
를 사용해야 합니다 (문자열 의 이스케이프 문자 이기 때문에 ) : 는 .\
new RegExp('\\(')
/\(/
따라서 패턴은 다음과 같아야합니다.
var pattern1 = ':\\(|:=\\(|:-\\(';
var pattern2 = ':\\(|:=\\(|:-\\(|:\\(|:=\\(|:-\\(';
아래를 사용하십시오.
var regEx = new RegExp(pattern1+'|'+pattern2, 'gi');
str.match(regEx);
정규식 리터럴을 무시하고 개체 생성자를 사용해야합니다. 여기서 정규식을 문자열로 전달할 수 있습니다.
var regex = new RegExp(pattern1+'|'+pattern2, 'gi');
str.match(regex);
RegExp 생성자는 텍스트를 패턴과 일치시키기위한 정규식 개체를 만듭니다.
var pattern1 = ':\\(|:=\\(|:-\\(';
var pattern2 = ':\\(|:=\\(|:-\\(|:\\(|:=\\(|:-\\(';
var regex = new RegExp(pattern1 + '|' + pattern2, 'gi');
str.match(regex);
위의 코드는 저에게 완벽하게 작동합니다 ...
참고 URL : https://stackoverflow.com/questions/5090103/javascript-regexp-dynamic-generation-from-variables
반응형
'developer tip' 카테고리의 다른 글
UIViewControllerContextTransitioning을 사용하여“From View Controller”가 사라집니다. (0) | 2020.08.17 |
---|---|
DATE 또는 DATETIME에 대한 기본값을 설정할 때 mysql 오류 (0) | 2020.08.16 |
nuget.targets를 찾을 수 없음 오류로 인해 Visual Studio에서 프로젝트를 열지 못함 (0) | 2020.08.16 |
PHP CURL CURLOPT_SSL_VERIFYPEER 무시 됨 (0) | 2020.08.16 |
공유 호스팅에서 Node.js 애플리케이션을 호스팅하는 방법 (0) | 2020.08.16 |