15. Javascript에서의
Regular Expression
정규표현식은 정규 언어에 대한 수학적 연구
에서 비롯됨.
Ken Thompson은 Stephen Kleene 의 이론을
type-3 언어에 적용하여 텍스트 에디터/프
로그래밍 언어에서 특정 패턴을 찾을 수 있
게 실질적인 패턴 매칭 기능을 추가.
정규표현식의 약간의 재해석 + Perl 의 확장
구문을 따름.
13년 4월 28일 일요일
16. Example : URI Match
var parse_url = /^(?:([A-Za-z]+):)?(/{0,3})([0-9.-A-Za-z]+)(?::(d+))?(?:/([^?#]*))?(?:
?([^#]*))?(?:#(.*))?$/;
var url = http://www.ora.com:80/goodparts?q#fragment
13년 4월 28일 일요일
28. 의견
정규 표현식은 더 복잡하게 만들수도 있지만, 길이가 짧고 간단
한게 최고!
13년 4월 28일 일요일
29. var parse_number = /^-?d+(?:.d*)?(?:e[+-]?d+)?$/i;
var test = function(num) {
document.writeln(parse_number.test(num));
};
test('1');
test('number');
test('98.6');
test('132.21.86.100');
test('123.45E-67'); //
test('123.45D-67');
숫자 일치
13년 4월 28일 일요일
30. Regular Expression
객체 생성
생성 방법
정규 표현식 리터럴 사용
var my_regexp = /(?:.|[^])*/g;
RegExp 객체로 생성
var my_regexp = new RegExp((?:.|[^])*, 'g');
13년 4월 28일 일요일
31. Regular Expression
플래그
리터럴 플래그 설명
g Global
i Insensitive
m Multiline
RegExp 객체 속성
객세
설명
global g flag 사용된 경우 true
ignoreCase i flag 사용된 경우 true
lastIndex 다음 exec 실행을 위한 시작 지점. 초기값 0.
multiline m 플래그가 사용된 경우 true
source 정규 표현식의 소스 텍스트
13년 4월 28일 일요일
32. RegExp 객체
function make_a_matcher() {
return /a/gi;
}
var x = make_a_matcher();
var y = make_a_matcher();
// x와 y는 같은 객체
x.lastIndex = 10;
document.writeln(y.lastIndex); // 10
== 0이 나온다. 확인 필요. 스펙 바뀌었나?
13년 4월 28일 일요일
323. Class
특정 문자 집합을 지정
ex. 모음
(?:a|e|i|o|u) or [aeiou]
장점
1. 문자의 범위 지정 가능
ASCII 특수문자 [!-/:-@[-`{-]
2. 부정형 클래스
ASCII 특수문자에 해당하지 않는 문자 [^!-/:-@[-`{-]
13년 4월 28일 일요일
324. Qualifier
요소가 몇 번 일치해야 하는가?
/www/ = /w{3}/
{3,6}
{3,}
?
*
+
13년 4월 28일 일요일