리자

[펌] 정규식 함수

· 2011-05-12 (목) 18:44:21 · 3382
함수 코드예제 코드설명
Array RegExp.exec (to be checked) var myRe=/d(b+)(d)/ig;
var myArray = myRe.exec("cdbBdbsbz");
/d(b+)(d)/ig

cdbBdbsbzⓥ

myArray.index =1 ; (처음으로 매칭되는 위치, 컴터가 늘 그렇듯 위치는 0번째부터 센다.)
myArray.input = cdbBdbsbz; (체크할 대상)
myArray[0] = dbBd;(검사에 통과한 부분)
myArray[1] = bB;(1번째 괄호에서 체크된 부분)
myArray[2] = d;(2번째 괄호에서 체크된 부분)

myRe.lastIndex =5 ; (다음번 체크를 하기위한 위치.)
myRe.ignoreCase = true; (/i 플래그 체크)
myRe.global = true; (/g 플래그 체크)
myRe.multiline = false; (/m 플래그 체크)

RegExp.$_ = cdbBdbsbz;(입력한 스트링)
RegExp.$1 = bB;(1번째 괄호에서 체크된 부분 )

boolean RegExp.test(to be checked) var myRe=/d(b+)(d)/ig;
var checked = myRe.test("cdbBdbsbz");
document.write("checked = " + checked +";<br>");
/d(b+)(d)/ig

cdbBdbsbzⓥ

실행결과: checked = true;

String RegExp.toString() var myRe=/d(b+)(d)/ig;
var str = myRe.toString();
document.write(str);
실행 결과: /d(b+)(d)/ig
String String.replace(pattern or string, to be replaced) var str = "abcdefe";
document.write(str.replace("e" , "f")); 실행 결과: abcdffe

e가 2번 있지만, 첫번째 인자가 정규식이 아니라 문자열일 경우는 첫번째 것만 바꾼다.
var str = "aba";
document.write(str.replace(/^a/ , "c")); 실행 결과: cba
var re = /(\w+)\s(\w+)/;
var str = "John Smith";
newstr = str.replace(re, "$2, $1");
document.write(newstr) 실행 결과: Smith, John

re에 의해서 찾아진 문자열 들은 re에서 ()로 표현된 순서대로 $1, $2와 같이 변수로 저장된다.
var re = /\s(?:http|https):\/\/\S*(?:\s|$)/g;
var str = "url is http://iilii.egloos.com/ !!\n";
str += "blah home: http://www.blah.co.kr";
newstr = str.replace(re, function (str,p1,offset,s) {
return "<a href='" + str + "'>" + str + "</a>";
}
).replace(/\n/, "<br>");
document.write(newstr); url is http://iilii.egloos.com/ !!
blah home: http://www.blah.co.kr

str: 찾은 문자열
p1: ()에서 검색된 1번째 문자열. 마찬가지로 p2,p3 등도 가능
offset: str을 찾은 위치
s : 원본 문자열.

Array String.match(regular expression var str = "ABCdEFgHiJKL";
var myResult = str.match(/[a-z]/g );
for(var cnt = 0 ; cnt < myResult.length; cnt++){
document.write(cnt +":" + myResult[cnt] +"<br>");
}

document.write("비교<br>");

var str = "ABCdEFgHiJKL";
var myResult = /[a-z]/g.exec(str);
for(var cnt = 0 ; cnt < myResult.length; cnt++){
document.write(cnt +":" + myResult[cnt] +"<br>");
} 실행 결과:
0:d
1:g
2:i
비교
0:d

String.match(RegExp) =>g flag가 있어도 다 찾아낸다.
RegExp.exec(String) =>g flag가 있으면, 한 개만 찾고 끝낸다.
Array String.split([separator[, limit]]) var str = "ABCdEFgHiJKL";
var myResult = str.split(/[a-z]/g , 3);
for(var cnt = 0 ; cnt < myResult.length; cnt++){
document.write(cnt +":" + myResult[cnt] +"<br>");
} 실행 결과:
0:ABC
1:EF
2:H

주어진 문자열을 separator를 기준으로 limit 만큼 자른다.<div class='small'>[이 게시물은 관리자님에 의해 2011-10-31 17:16:08 PHP & HTML에서 이동 됨]</div>
|
댓글을 작성하시려면 로그인이 필요합니다.

프로그램

8,188건
+
제목 글쓴이 날짜 조회
12-01-22 조회 3,619
12-01-21 조회 2,918
12-01-19 조회 4,837
12-01-18 조회 2,846
12-01-18 조회 2,805
12-01-18 조회 3,009
12-01-17 조회 2,787
12-01-17 조회 3,051
12-01-14 조회 1.1만
12-01-14 조회 3,591
12-01-14 조회 3,903
12-01-11 조회 3,351
12-01-11 조회 3,083
12-01-11 조회 3,091
12-01-11 조회 3,203
12-01-11 조회 3,413
12-01-11 조회 2,725
12-01-10 조회 3,040
12-01-10 조회 2,821
12-01-10 조회 2,834
12-01-09 조회 2,849
12-01-08 조회 2,937
12-01-07 조회 2,846
12-01-06 조회 2,655
12-01-06 조회 2,780
12-01-05 조회 2,783
12-01-02 조회 2,929
11-12-29 조회 2,899
11-12-28 조회 2,886
11-12-28 조회 2,800
11-12-27 조회 3,016
11-12-23 조회 2,750
11-12-23 조회 2,865
11-12-21 조회 3,888
11-12-21 조회 2,926
11-12-19 조회 2,835
11-12-14 조회 4,240
11-12-08 조회 3,390
11-12-08 조회 4,059
11-12-07 조회 4,339
11-12-06 조회 4,241
11-12-06 조회 3,621
11-12-05 조회 3,264
11-12-05 조회 4,856
11-12-04 조회 3,253
11-12-03 조회 3,566
11-12-02 조회 3,459
11-12-02 조회 3,470
11-12-02 조회 2,803
11-12-01 조회 2,782
11-12-01 조회 3,681
11-12-01 조회 2,761
11-11-29 조회 5,641
11-11-23 조회 3,576
11-11-23 조회 3,924
11-11-22 조회 3,897
11-11-22 조회 2,967
11-11-21 조회 3,496
11-11-21 조회 2,794
11-11-18 조회 3,890
11-11-18 조회 3,047
11-11-17 조회 2,940
11-11-17 조회 2,946
11-11-17 조회 4,519
11-11-11 조회 2,815
11-11-11 조회 2,809
11-11-11 조회 3,943
11-11-11 조회 4,646
11-11-08 조회 2,922
11-11-06 조회 3,368
11-11-06 조회 3,668
11-10-21 조회 2,468
11-10-21 조회 2,371
11-10-19 조회 2,435
11-10-19 조회 3,946
11-10-08 조회 2,484
11-10-06 조회 4,166
11-10-01 조회 2,580
11-09-30 조회 2,558
11-09-29 조회 2,556
11-09-26 조회 2,416
11-09-23 조회 2,413
11-09-23 조회 2,178
11-09-22 조회 2,766
11-09-09 조회 3,069
11-08-30 조회 4,014
11-08-23 조회 2,203
11-08-12 조회 2,374
11-08-04 조회 3,960
11-07-01 조회 2,935
11-06-09 조회 2,577
11-05-17 조회 2,692
11-05-07 조회 2,952
11-04-21 조회 2,615
11-04-12 조회 2,484
11-04-11 조회 3,574
11-02-11 조회 2,706
11-02-08 조회 2,171
11-01-11 조회 2,545
10-11-26 조회 3,893