문서의 선택한 두 판 사이의 차이를 보여줍니다.
다음 판 | 이전 판 | ||
wiki:javascript:javascript_note:js_regexp [2021/04/22 11:51] emblim98 만듦 |
wiki:javascript:javascript_note:js_regexp [2023/01/13 18:44] (현재) |
||
---|---|---|---|
줄 35: | 줄 35: | ||
</ | </ | ||
\\ | \\ | ||
- | 예제 설명:\\ | ||
- | **/ | ||
- | \\ | ||
- | **w3schools**는 (검색에서 사용되는) 패턴입니다.\\ | ||
- | \\ | ||
- | **i**는 (대소문자를 구분하지 않는70%> | ||
- | * description : Javascript Regular Expressions | ||
- | * author | ||
- | * email : shlim@repia.com | ||
- | * lastupdate | ||
- | </ | ||
- | <WRAP clear></ | ||
- | \\ | ||
- | ====The source of this article==== | ||
- | [[https:// | ||
- | \\ | ||
- | 정규식(Regular Expression, 정규 표현식)은 검색 패턴을 형성하는 연속된 문자와 기호입니다.\\ | ||
- | \\ | ||
- | 검색 패턴은 텍스트 검색 및 텍스트 replace 작업에 사용할 수 있습니다.\\ | ||
- | =====What is a Regular Expression? | ||
- | |||
- | 정규식(Regular Expression, 정규 표현식)은 검색 패턴을 형성하는 연속된 문자와 기호입니다.\\ | ||
- | \\ | ||
- | 텍스트에서 데이터를 검색할 때, 정규식 검색 패턴을 사용하여 찾고 있는 것을 나타낼 수 있습니다.\\ | ||
- | \\ | ||
- | 정규식은 단일 문자이거나 더 복잡한 패턴이 될 수 있습니다.\\ | ||
- | \\ | ||
- | 정규식을 사용하여 모든 유형의 **텍스트 검색(text search)** 및 **텍스트 바꾸기(text replace)** 작업을 할 수 있습니다.\\ | ||
- | \\ | ||
- | =====Syntax===== | ||
- | <code javascript> | ||
- | / | ||
- | </ | ||
- | |||
- | ====Example==== | ||
- | <code javascript> | ||
- | var patt = / | ||
- | </ | ||
- | \\ | ||
예제 설명:\\ | 예제 설명:\\ | ||
+ | |||
**/ | **/ | ||
\\ | \\ | ||
줄 83: | 줄 45: | ||
=====Using String Methods===== | =====Using String Methods===== | ||
+ | |||
%%JavaScript%%에서, | %%JavaScript%%에서, | ||
\\ | \\ | ||
줄 132: | 줄 95: | ||
=====Using String replace() With a String===== | =====Using String replace() With a String===== | ||
+ | '' | ||
+ | \\ | ||
+ | <code javascript> | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | <button onclick=" | ||
+ | <p id=" | ||
+ | < | ||
+ | function myFunction() { | ||
+ | let str = document.getElementById(" | ||
+ | let txt = str.replace(" | ||
+ | document.getElementById(" | ||
+ | } | ||
+ | </ | ||
+ | </ | ||
+ | </ | ||
+ | </ | ||
+ | =====Use String replace() With a Regular Expression===== | ||
+ | 대소문자를 구분하지 않는 정규식(a case insensitive regular expression)을 사용하여 Microsoft를 문자열에서 W3Schools로 바꿉니다.\\ | ||
+ | \\ | ||
+ | <code javascript> | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | <button onclick=" | ||
+ | <p id=" | ||
+ | < | ||
+ | function myFunction() { | ||
+ | let str = document.getElementById(" | ||
+ | let txt = str.replace(/ | ||
+ | document.getElementById(" | ||
+ | } | ||
+ | </ | ||
+ | </ | ||
+ | </ | ||
+ | </ | ||
+ | =====Did You Notice? | ||
+ | 위의 메서드에서, | ||
+ | 정규식은 검색을 훨씬 더 강력하게 만들 수 있습니다 (예 : 대소 문자를 구분하지 않음). | ||
+ | =====Regular Expression Modifiers===== | ||
+ | **변경자(Modifiers)**를 사용하여 대소문자를 구분하지 않는 전역검색을 할 수 있습니다.\\ | ||
+ | \\ | ||
+ | ^ Modifier | ||
+ | | %%i%% | 대소문자를 구분하지 않는 매칭을 합니다. | ||
+ | | %%g%% | 전역 매칭을 합니다(첫 번째 매칭 이후에 중단되지 않고 모든 매칭을 찾습니다) | ||
+ | | %%m%% | 여러 줄의 매칭을 합니다. | ||
+ | \\ | ||
+ | ====Example of i modifier==== | ||
+ | <code javascript> | ||
+ | < | ||
+ | function myFunction() { | ||
+ | let str = "Visit W3Schools"; | ||
+ | let patt1 = / | ||
+ | let result = str.match(patt1); | ||
+ | document.getElementById(" | ||
+ | } | ||
+ | </ | ||
+ | </ | ||
+ | ====Example of g modifier==== | ||
+ | <code javascript> | ||
+ | < | ||
+ | function myFunction() { | ||
+ | let str = "Is this all there is?"; | ||
+ | let patt1 = / | ||
+ | let result = str.match(patt1); | ||
+ | document.getElementById(" | ||
+ | } | ||
+ | </ | ||
+ | ====Example of m modifier==== | ||
+ | <code javascript> | ||
+ | < | ||
+ | function myFunction() { | ||
+ | let str = "\nIs th\nis it?"; | ||
+ | let patt1 = /^is/m; | ||
+ | let result = str.match(patt1); | ||
+ | document.getElementById(" | ||
+ | } | ||
+ | </ | ||
+ | </ | ||
+ | =====Regular Expression Patterns===== | ||
+ | 괄호는 문자의 범위를 찾는 데 사용합니다: | ||
+ | \\ | ||
+ | ^ Expression | ||
+ | | %%[abc]%% | ||
+ | | %%[0-9]%% | ||
+ | | %%(x|y)%% | ||
+ | ====Example of [abc] pattern==== | ||
+ | <code javascript> | ||
+ | < | ||
+ | function myFunction() { | ||
+ | let str = "Is this all there is?"; | ||
+ | let patt1 = /[h]/g; | ||
+ | let result = str.match(patt1); | ||
+ | document.getElementById(" | ||
+ | } | ||
+ | </ | ||
+ | </ | ||
+ | ====Example of [0-9] pattern==== | ||
+ | <code javascript> | ||
+ | < | ||
+ | function myFunction() { | ||
+ | let str = " | ||
+ | let patt1 = /[1-4]/g; /* 변수 str에서 1~4까지의 숫자를 변수 patt1에 대입 */ | ||
+ | var result = str.match(patt1); | ||
+ | document.getElementById(" | ||
+ | } | ||
+ | </ | ||
+ | </ | ||
+ | ====Example of (x|y) pattern==== | ||
+ | <code javascript> | ||
+ | < | ||
+ | function myFunction() { | ||
+ | let str = "re, green, red, green, gren, gr, blue, yellow"; | ||
+ | let patt1 = / | ||
+ | let result = str.match(patt1); | ||
+ | document.getElementById(" | ||
+ | } | ||
+ | </ | ||
+ | </ | ||
+ | =====Metacharacters are characters with a special meaning: | ||
+ | Metacharacter(메타문자) : 다른 문자의 정보를 운반하기 위해 프로그램 소스나 데이터에 끼워 넣는 문자\\ | ||
+ | \\ | ||
+ | ^ Metacharacter | ||
+ | | %%\d%% | ||
+ | | %%\s%% | ||
+ | | %%\b%% | ||
+ | | %%\uxxx%% | ||
+ | |||
+ | ====Example of Metachatacters ( \d )==== | ||
+ | <code javascript> | ||
+ | < | ||
+ | function myFunction() { | ||
+ | let str = "Give 100%!"; | ||
+ | let patt1 = / | ||
+ | let result = str.match(patt1); | ||
+ | document.getElementById(" | ||
+ | } | ||
+ | </ | ||
+ | </ | ||
+ | |||
+ | ====Example of Metacharacters ( \s )==== | ||
+ | <code javascript> | ||
+ | < | ||
+ | function myFunction() { | ||
+ | let str = "Is this all there is?"; | ||
+ | let patt1 = / | ||
+ | let result = str.match(patt1); | ||
+ | document.getElementById(" | ||
+ | console.log(result, | ||
+ | } | ||
+ | </ | ||
+ | </ | ||
+ | |||
+ | ====Exmaple of Metacharacters ( \b )==== | ||
+ | <code javascript> | ||
+ | < | ||
+ | let str = " | ||
+ | let patt1 = /\bLO/; /* LO로 시작하는 단어를 검색 */ | ||
+ | let result = str.search(patt1); | ||
+ | document.getElementById(" | ||
+ | console.log(result, | ||
+ | </ | ||
+ | </ | ||
+ | |||
+ | ====Exmaple of Metacharacters ( \b )==== | ||
+ | <code javascript> | ||
+ | < | ||
+ | let str = " | ||
+ | let patt1 = /LO\b/; /* 단어의 끝 부분에 LO가 들어가는 것을 검색 */ | ||
+ | let result = str.search(patt1); | ||
+ | document.getElementById(" | ||
+ | </ | ||
+ | </ | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | ====Example of Metacharacters ( \uxxxx )==== | ||
+ | <code javascript> | ||
+ | < | ||
+ | function myFunction() { | ||
+ | let str = "Visit W3Schools. Hello World!"; | ||
+ | let patt1 = /\u0057/g; | ||
+ | let result = str.match(patt1); | ||
+ | document.getElementById(" | ||
+ | } | ||
+ | </ | ||
+ | </ | ||
+ | |||
+ | =====Quantifiers define quantities===== | ||
+ | ^ Quantifier | ||
+ | | %%n+%% | ||
+ | | %%n*%% | ||
+ | | %%n? | ||
+ | |||
+ | ====Example of Quantifiers ( n+ )==== | ||
+ | <code javascript> | ||
+ | < | ||
+ | function myFunction() { | ||
+ | let str = " | ||
+ | let patt1 = / | ||
+ | let result = str.match(patt1); | ||
+ | document.getElementById(" | ||
+ | } | ||
+ | </ | ||
+ | </ | ||
+ | |||
+ | ====Example of Quantifiers ( n* )==== | ||
+ | <code javascript> | ||
+ | < | ||
+ | function myFunction() { | ||
+ | let str = " | ||
+ | let patt1 = /lo*/g; | ||
+ | let result = str.match(patt1); | ||
+ | document.getElementById(" | ||
+ | } | ||
+ | </ | ||
+ | </ | ||
+ | |||
+ | ====Example of Quantifiers ( n? )==== | ||
+ | <code javascript> | ||
+ | < | ||
+ | function myFunction() { | ||
+ | let str = "1, 100 or 1000?"; | ||
+ | let patt1 = /10?/g; | ||
+ | let result = str.match(patt1); | ||
+ | document.getElementById(" | ||
+ | } | ||
+ | </ | ||
+ | </ | ||
+ | |||
+ | =====Using the RegExp Object===== | ||
+ | %%JavaScript%%에서 %%RegExp%% 오브젝트는 미리 정의된 속성 및 메서드가 있는 정규식 오브젝트입니다.\\ | ||
+ | |||
+ | =====Using test()===== | ||
+ | '' | ||
+ | \\ | ||
+ | 문자열에서 패턴을 검색하고, | ||
+ | \\ | ||
+ | 다음 예제는 문자열에서 %%" | ||
+ | |||
+ | ====Example==== | ||
+ | <code javascript> | ||
+ | var patt = /e/; | ||
+ | patt.test(" | ||
+ | </ | ||
+ | \\ | ||
+ | 문자열에 %%" | ||
+ | \\ | ||
+ | 먼저 정규식을 변수에 넣을 필요가 없습니다. 위의 두 줄을 아래와 같이 한 줄로 줄일 수 있습니다.\\ | ||
+ | \\ | ||
+ | <code javascript> | ||
+ | / | ||
+ | </ | ||
+ | \\ | ||
+ | <code javascript> | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | <p id=" | ||
+ | <p id=" | ||
+ | < | ||
+ | text = document.getElementById(" | ||
+ | document.getElementById(" | ||
+ | </ | ||
+ | </ | ||
+ | </ | ||
+ | </ | ||
+ | \\ | ||
+ | =====Using exec()===== | ||
+ | '' | ||
+ | \\ | ||
+ | 문자열에서 지정된 패턴을 검색하고, | ||
+ | \\ | ||
+ | 일치하는 항목이 없으면, 빈 %%(null)%% 개체를 반환합니다.\\ | ||
+ | \\ | ||
+ | 다음 예제는 문자열에서 " | ||
+ | |||
+ | ====Example==== | ||
+ | <code javascript> | ||
+ | < | ||
+ | let obj = / | ||
+ | document.getElementById(" | ||
+ | /* Found e in position 2 in the text: The best things in life are free! */ | ||
+ | </ | ||
+ | </ | ||
+ | |||
+ | =====Complete RegExp Reference===== | ||
+ | 전체 참조를 보려면 [[https:// | ||
+ | \\ | ||
+ | 모든 %%RegExp%% 속성 및 메서드에 대한 설명과 예제가 포함되어 있습니다.\\ | ||
{{tag> | {{tag> |