Javascript에서 정규표현식
우선 정규표현식 객체를 만들고
이렇게..
var pattern = /a/
혹은 이렇게…
var pattern = new RegExp('a');
객체에서 패턴을 추출하고
console.log(pattern.exec('abcdef')); // ["a"]
객체에서 패턴에 해당되는 문자열이 있는지 확인할 수 있다.
console.log(pattern.test('abcdef')); // true
정규표현식 옵션
i 옵션
i를 붙이면 대소문자를 구분하지 않는다.
var xi = /a/;
console.log("Abcde".match(xi)); // null
var oi = /a/i;
console.log("Abcde".match(oi)); // ["A"];
g 옵션
g를 붙이면 검색된 모든 결과를 리턴한다.
var xg = /a/;
console.log("abcdea".match(xg));
var og = /a/g;
console.log("abcdea".match(og));
정규표현식 치환
우선 간단한 예는 아래와 같고
var pattern = /(\w+)\s(\w+)/;
var str = "coding everybody";
var result = str.replace(pattern, "$2, $1");
console.log(result);
실용적인 예제로 보면 아래와 같이 문자열에서 url만 뽑아서 링크 태그를 붙여주는 기능을 정규표현식을 사용해서 만들 수 있다.
var urlPattern = /\b(?:https?):\/\/[a-z0-9-+&@#\/%?=~_|!:,.;]*/gim;
var content = '생활코딩 : http://opentutorials.org/course/1 입니다. 네이버 : http://naver.com 입니다. ';
var result = content.replace(urlPattern, function(url){
return '<a href="'+url+'">'+url+'</a>';
});
console.log(result);
웹개발에서는 유용하게 쓰일 수 있는 기능이라고 한다. 정규표현식 자체에 익숙하지는 않지만 필요한 순간이 오면 막상 사용해봐야 익숙해질 것 같다.
- 정규표현식을 시각화해주는 도구 : https://regexper.com/
- 정규표현식 빌더 : https://regexr.com/
[참고]