"자바스크립트 exec() 메소드"의 두 판 사이의 차이

 
(사용자 2명의 중간 판 11개는 보이지 않습니다)
2번째 줄: 2번째 줄:
;JavaScript exec() Method
;JavaScript exec() Method
;JavaScript exec() 메소드
;JavaScript exec() 메소드
;RegExp.prototype.exec()
* 정규식 패턴에 맞는 문자열 탐색을 수행하는 메소드
* 정규식 패턴에 맞는 문자열 탐색을 수행하는 메소드
* 끝을 만나면(찾지 못하면) null
* 끝을 만나면(=더 이상 맞는 것을 찾지 못하면) null
* 끝인데 또 실행하면 다시 처음부터 탐색함
* 끝인데 또 실행하면 다시 처음부터 탐색한다.


==예시==
==예시==
<source lang='JavaScript'>
<syntaxhighlight lang='JavaScript' run>
var str = "Hello world!";
var str = "Hello world!";
var pattern = /([A-Za-z]+)|([ !])/g;
var pattern = /([A-Za-z]+)|([ !])/g;
18번째 줄: 19번째 줄:
console.log( pattern.exec(str) );
console.log( pattern.exec(str) );
console.log( pattern.exec(str) );
console.log( pattern.exec(str) );
// ["Hello", "Hello", undefined, index: 0, input: "Hello world!"]
</syntaxhighlight>
// [" ", undefined, " ", index: 5, input: "Hello world!"]
<syntaxhighlight lang='JavaScript' run>
// ["world", "world", undefined, index: 6, input: "Hello world!"]
function split_words_n_others(str) {
// ["!", undefined, "!", index: 11, input: "Hello world!"]
  var res = [];
// null
  var pattern = /([A-Za-z]+)|([^A-Za-z]+)/g;
// ["Hello", "Hello", undefined, index: 0, input: "Hello world!"]
  while ((match = pattern.exec(str)) !== null) {
// [" ", undefined, " ", index: 5, input: "Hello world!"]
  res.push( {word:match[0], is_word:(match[2]==undefined)} );
// ["world", "world", undefined, index: 6, input: "Hello world!"]
  }
</source>
  return res;
}
console.log(split_words_n_others("Hello world!"));
// [
// {word: "Hello", is_word: true}
// {word: " ", is_word: false}
// {word: "world", is_word: true}
// {word: "!", is_word: false}
// ]
</syntaxhighlight>


==같이 보기==
==같이 보기==
* [[JavaScript RegExp]]
* [[자바스크립트 RegExp]]
* [[자바스크립트 split()]]
* [[자바스크립트 split_words_n_others()]]


==참고==
==참고==
*https://www.w3schools.com/jsref/jsref_regexp_exec.asp
* https://www.w3schools.com/jsref/jsref_regexp_exec.asp
* https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/RegExp/exec


[[분류: JavaScript]]
[[분류: JavaScript]]
[[분류: 정규표현식]]
[[분류: 정규표현식]]
[[분류: RegExp]]

2021년 11월 3일 (수) 23:20 기준 최신판

1 개요[ | ]

JavaScript exec() Method
JavaScript exec() 메소드
RegExp.prototype.exec()
  • 정규식 패턴에 맞는 문자열 탐색을 수행하는 메소드
  • 끝을 만나면(=더 이상 맞는 것을 찾지 못하면) null
  • 끝인데 또 실행하면 다시 처음부터 탐색한다.

2 예시[ | ]

var str = "Hello world!";
var pattern = /([A-Za-z]+)|([ !])/g;
console.log( pattern.exec(str) );
console.log( pattern.exec(str) );
console.log( pattern.exec(str) );
console.log( pattern.exec(str) );
console.log( pattern.exec(str) );
console.log( pattern.exec(str) );
console.log( pattern.exec(str) );
console.log( pattern.exec(str) );
function split_words_n_others(str) {
  var res = [];
  var pattern = /([A-Za-z]+)|([^A-Za-z]+)/g;
  while ((match = pattern.exec(str)) !== null) {
  	res.push( {word:match[0], is_word:(match[2]==undefined)} );
  }
  return res;
}
console.log(split_words_n_others("Hello world!"));
// [
// {word: "Hello", is_word: true}
// {word: " ", is_word: false}
// {word: "world", is_word: true}
// {word: "!", is_word: false}
// ]

3 같이 보기[ | ]

4 참고[ | ]

문서 댓글 ({{ doc_comments.length }})
{{ comment.name }} {{ comment.created | snstime }}