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://opentutorials.org/course/743/6580