TIL. javascript 공부 7/7

예흠·2020년 7월 7일

네 오늘은 자바스크립트를 공부해보려고 해요~!
시작 합시다!

생활코딩(참고자료!)

* 정규 표현식

정규표현식은 문자열에서 특정한 문자를 찾아내는 도구입니다.
이 도구를 사용하면 수십줄이 필요한 작업을 한줄로 끝낼 수 있습니다.

정규 표현식은 두가지 단계로 이루어집니다.
하나는 컴파일, 다른 하나는 실행입니다.

- 컴파일

컴파일은 검출하고자 하는 패턴을 만드는 일입니다.
우선 정규표현식 객체를 만들어야 하는데, 두가지 방법이 있습니다.

var pattern = /a/ // 정규표현식 리터럴
var pattern = new RegExp('a') // 정규표현식 객체 생성자

네 이렇게 두 가지 방법이 있습니다.

- 정규표현식 메소드 실행

정규표현식을 컴파일해서 객체를 만들었다면 문자열에서 원하는 문자를 찾아내 봅시다.

- RegExp.exec()

console.log(pattern.exec('abcdef')); //["a"]
console.log(pattern.exec('bcdefg')); //null

첫번째는 문자열 a를 값으로 하는 배열을 리턴하고
두 번째는 인자 'bcdef'에는 a가 없기 때문에 null을 리턴합니다.

- RegExp.test()

test는 인자 안에 패턴에 해당되는 문자열이 있으면 true, 없으면 false를 리턴합니다.

console.log(pattern.test('abcdef')); // true
cnosole.log(pattern.test('bcdefg')); // false

- 문자열 메소드 실행

문자열 객체의 몇몇 메소드는 정규표현식을 사용할 수 있습니다.

- String.match()

RegExp.exec()와 비슷합니다.

console.log('abcdef'.match(pattern)); // ["a"]
console.log('bcdefg'.match(pattern)); // null

- String.replace()

문자열에서 패턴을 검색해서 이를 변경한 후에 변경된 값을 리턴합니다.

console.log('abcdef'.replace(pattern, 'A')); // Abcdef

- 옵션

정규표현식 패턴을 만들 때 옵션을 설정할 수 있습니다.
옵션에 따라서 검출되는 데이터가 달라집니다.

- i

i를 붙이면 대소문자를 구분하지 않습니다.

var xi = /a/;
console.log("Abcdef".match(xi)); //null
var oi = /a/i;
console.log("Abcdef".match(oi)); //["A"];

- g

g를 붙이면 검색된 모든 결과를 리턴합니다.

var xg = /a/;
console.log("abcdea".match(xg));
var og = /a/g;
console.log("abcdea".match(og)); // ["a", "a"]

- 캡쳐

괄호안의 패턴은 변수처럼 재사용할 수 있습니다.
이 때 기호$를 사용합니다. 예시보시죠!

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

- 치환

말 그대로 바꿔주는겁니다!

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);

(넘 어려워서 그냥 일단 필기만 햿답니다..;;;)

profile
노래하는 개발자입니다.

0개의 댓글