IT_Programming/JavaScript

JavaScript에서 정규식

JJun ™ 2006. 11. 4. 11:56

 

-------------- 예제 소스 ------------------------------

 

<script language="JavaScript">
function splitStr(str)
{
 var arr = str.split( /\+|\-/g );
 var ret = "";
 for(var i = 0; i<arr.length; i++)

  ret += arr[i] + ", ";

 outbox.value = ret;
}
</script>


<input type="text" name="box">
<input type="button" value="숫자만분리" onclick="splitStr(box.value)">
<textarea name="outbox"></textarea>

---------------------------------------------------


str.split(/\+|\-/g); 메서드의 인자(구분자)로 정규식구문을 집어 넣었습니다.

정규식구문은 두개의 슬래시(/)기호 사이에 작성합니다.
+ - 등은 정규식구문중 특수한 역할을 하는 것들이므로 문자열에서 +, - 같은 기호문자들을
검색할때는 앞에 \ 를 붙여 해당 기호문자들을 이스케이프해줍니다.  | 는 or 연산자이구요.
g는 해당패턴을 문자열에서 검색할때 해당패턴이 한번이 되었든 몇번이 되었든 간에
문자열의 끝까지 검색하겠다는 뜻입니다. 즉... 문자열의 끝까지 나타나는 + 또는 - 기호를
split 메서드의 인자(구분자)로 지정하겠다는 뜻입니다.
다른것은 더 설명드릴 필요가 없겠군요... +, -, /, * 등의 네 연산자 모두를 적용하려면
str.split(/\+|\-|\*|\//g); 이 되겠지요?

 


<script>

v_string = "52landom2_this10003s.jpg";

head = v_string.replace(/^(.*[^0-9])?([0-9]+)([^0-9]+)?$/,"$1");

body = v_string.replace(/^(.*[^0-9])?([0-9]+)([^0-9]+)?$/,"$2");

tail = v_string.replace(/^(.*[^0-9])?([0-9]+)([^0-9]+)?$/,"$3");

</script>

head - >52landom2_this

body - >10003

tail    - >s.jpg

 

*설명:

 

/    / 사이에 패턴을 입력

^ 처음문자

$ 끝나는 문자

[0-9] 0부터 9까지

[^0-9] 0부터9까지를 제외한

[a-zA-Z] 영어 소,대문자

? 있을수도 있고 없을수도 있는 문자

+ 적어도 1개이상의 문자

. 아무문자

* 여러문자

등등

 

패턴에 맞는것을 지정하는걸로 바꾼다

$1 첫번째 괄호

$2 두번째 괄호

.

.

 

'IT_Programming > JavaScript' 카테고리의 다른 글

Script : 새창으로 게시물 올리기  (0) 2007.02.13
JAVASCRIPT의 고급팁  (0) 2007.01.21
Scroll to Bottom of a Div  (0) 2006.11.04
동적으로 테이블 다루기  (0) 2006.11.04
[스크랩] 시간포멧함수 ":"제거함수  (0) 2006.10.16