정규표현식(regular expression) : 문자열에서 특정한 문자를 찾아내는 도구
var pattern = /a/;
var pattern = new RegExp('a');
정규표현식을 컴파일해서 객체를 만든 뒤, 문자열에서 원하는 문자를 찾아내야 함.
console.log(pattern.exec('abcdef')); //abcdef 문자열에서 a를 찾고 싶음
// 문자열 a를 값으로 하는 배열 리턴 ["a"]
var pattern1 = /a./;
console.log(pattern1.exec('abcdef')); //a. :a로 시작하는 문자 ["ab"]
console.log(pattern.exec('bcedfg')); //a가 존재하지 않으므로 결과값 null
리턴값 boolean
pattern.test('abcdef'); //true
patter.test('bcdefg'); //false
RdgExp.exec()와 비슷
var pattern = /a/;
var str = 'abcdef';
var str1 = 'bcdefg';
str.match(pattern); // ["a"]
str1.match(pattern); // null
문자열에서 패턴을 검색해서 이를 변경한 후에 변경된 값을 리턴
str.replace(pattern, 'A'); // "Abcedf"
i
대소분자 구분안함
var xi = /a/;
var oi = /a/i; // i 추가
"Abcde".match(xi); // null
"Abced".match(oi); // ["A"]
g
검색된 모든 결과 리턴
var xg = /a/;
var og = /a/g; // g
"abcdea".match(xg); // ["a"]
"abcdea".match(og); // ["a", "a"]
// i,g 동시에 사용 가능
var ig = /a/ig;
"AabcdAa".match(ig); //["A","a", "A", "a"]
괄호안의 패턴을 마치 변수처럼 재사용 가능. $
사용
var pattern = /(\w+)\s(\w+)/;
var str = "Hello world";
var result = str.replace(pattern, "$2, $1");
console.log(result); // world, Hello
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);