JavaScript에서 match() 메서드를 사용할 때, 일치시킬 패턴을 변수로 전달할 수 있습니다. 문자열 리터럴 대신 변수 이름을 그대로 인자로 넘기면 되며, 문법은 다음과 같습니다.
console.log(yourVariableName.match(yourMatchingVariableName));
예제
아래 예제에서는 문장과 찾고자 하는 단어를 각각 변수에 담은 뒤, RegExp 생성자를 이용해 정규식 객체를 만들어 match()에 전달합니다.
var sentence = 'My Name is John';
console.log("원본 문자열=");
console.log(sentence);
var matchWord = 'John';
console.log("일치시킬 값=");
console.log(matchWord);
var matchRegularExpression = new RegExp(matchWord, 'g');
console.log(sentence.match(matchRegularExpression));코드 설명:
sentence: 검색 대상이 되는 원본 문자열입니다.matchWord: 찾고 싶은 단어를 담고 있는 변수입니다.new RegExp(matchWord, 'g'): 변수 값을 기반으로 정규식 객체를 생성합니다. 두 번째 인자인'g'(global) 플래그는 문자열 내에서 일치하는 모든 결과를 반환하도록 합니다.
프로그램 실행 방법
위 프로그램을 실행하려면 Node.js 환경에서 다음 명령어를 입력하면 됩니다.
node fileName.js
여기서는 파일 이름을 demo107.js로 가정하겠습니다.
node demo107.js
실행 결과
위 코드를 실행하면 다음과 같은 출력을 확인할 수 있습니다.
PS C:\Users\Amit\JavaScript-code> node demo107.js 원본 문자열= My Name is John 일치시킬 값= John [ 'John' ]
출력 결과에서 볼 수 있듯이, match()는 일치하는 부분을 배열 형태로 반환합니다. 만약 일치하는 값이 없다면 null을 반환하므로, 실무에서는 반환값의 존재 여부를 함께 확인하는 것이 좋습니다.