본문 바로가기

RegEXR/JS

JavaScript - 정규표현식

JavaScript - 정규표현식 (2/7) : 패턴 만들기

정규표현식 객체 생성자 = 패턴 만들기

  • / 와 /사이에 찾을 패턴을 넣는다.
  • new RegExp('패턴') 으로 만든다.

JavaScript - 정규표현식 (3/7) : RegExp 객체의 정규 표현식

RegExp.exec()

  • 패턴에 맞는 문자열이 0번째에 담긴 담긴 배열을 반환한다.
  • [찾은문자열, index: 인덱스, input: 입력한문자열, groups: undefined];
  • 매칭되는 문자열이 없으면 null을 반환한다.
var pattern = /a/;
console.log(pattern.exec('abcde'));
// ["a", index: 0, input: "abcde", groups: undefined]

## RegExp.test()

  • 찾는 문자열이 있는지 boolean 반환
var pattern = /a/;
console.log(pattern.test('abcde')); // true

JavaScript - 정규표현식 (4/7) : String 객체의 정규 표현식

문자열.replace(찾는패턴, 바꿀문자열)

  • 정규표현식이랑 매칭 되는 문자열을 바꾸기
var str = 'abcde';
var pattern = /a/;
str.replace(pattern, 'A'); // "Abcde"

JavaScript - 정규표현식 (5/7) : 옵션

i

  • 대소문자를 구분하지 않는다.
var xi = /a/; // 대소문자 구분
"Abcde".match(xi); // null
var oi = /a/i; // 대소문자 구분X
"Abcde".match(oi); // ["A", index: 0, input: "abcde", groups: undefined]

g

  • 전역에서 다 찾는다 === 전부다 찾아라
var xg = /a/;
'abcdea'.match(xg); // ["a", index: 0, input: "abcdea", groups: undefined]
var og = /a/g;
'abcdea'.match(og); // ["a", "a"]
var ig = /a/ig
"AabcdAa".match(ig) // ["A", "a", "A", "a"]

JavaScript - 정규표현식 (6/7) : 캡처

(\w+)\s(\w+)

var pattern = /(\w+)\s(\w+)/
var str = "coding everybody";
var result = str.replace(pattern, "$2, $1");
console.log(result); // everybody, coding 

JavaScript - 정규표현식 (7/7) : 치환

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);
// 생활코딩 : <a href="http://opentutorials.org/course/1">http://opentutorials.org/course/1</a> 입니다. 네이버 : <a href="http://naver.com">http://naver.com</a> 입니다.