본문 바로가기

Study/JavaScript

[javaScript] 정규 표현식, 이벤트, 이벤트 핸들러, 이벤트 버블

변수, 데이터형, 연산, 제어
태그 -> 객체
정규표현식 -> 검색
이벤트 -> 80%

 

 

정규표현식

- 패턴을 형성하는 문자들의 집합으로 문자열 내에서 검색, 대체, 추출 등을 할때 사용한다.

//문자열 내에 한 개이상의 s문자를 포함한다
var search = new RegExp('+s');
= var search2 = /+s/;

 

test()
- 입력된 문자열이 정규표현식에 부합하는 지 판단

//i는 대,소문자 구분없이 검사하라는 뜻
var re = /JavaScript rules/i;
//g는 전역매칭(한 줄만 검사하는 게 아니라 전체를 검사
var re = /JavaScript rules/g;

 

exec()
- 해당 패턴 내용을 추출
* - 0개 이상으로 구성

//J로 시작하고 S문자가 0개 이상

var re = /JS*/ig;
var str = "abcJScript*RuleJSdef";
var result = re.exec(str);
while(result) {
 document.writeln(result);
 result = re.exec(str);
}

=>JS JS

 

String
- replace() : 결과에 맞는 것으로 바꿔준다
- match() : 결과에 맞는 것만 찾아서 리턴
- search()

\s - 문지 s가 아닌 공백문자 의미
//(공백)*

var regExp = /\s\*/g ;
var str = "This *is *a *test *String";
var result = str.replace(regExp, "-");
document.writeln(result);

=>This-is-a-test-String

\D - 숫자가 아닌 문자
\d - 숫자
-> //숫자 표현

var regExp = /:\D*\s\d+\s\d+/;
//var regExp = /:[^0-9]+\s[^0-9)\s[0-9]+/;
//숫자가 아닌 표현
var str = "This is a date: March 12 2005";
var result = str.match(regExp);
document.writeln(result);

=>: March 12 2005

^ - 한 줄의 시작과 끝에 위치한 패턴을 찾는 데 사용

var regExp = /^The/i;
var str = "the This is a date: March 12 2005";
var result = str.match(regExp);
document.writeln(result);

=>the

$ - 한 줄의 끝에 위치한 패턴을 찾는 데 사용

var regExp = /end$/i;
var str = "The This is a The date: end March 12 2005 end";
var result = str.match(regExp);
document.writeln(result);

=>end

/( ) - ( )/ - $1, $2
\w - 알파벳, 숫자로 된 문자[A-Za-z0-9]

var regExp = /(\w*)-*(\w*)/;
var str = "Java--Script";
var result = str.replace(regExp, "$2-$1");
document.writeln(result);

=>Script-Java

자바스크립트는 한 문서에 대해 부분모듈이다.

 

 

이벤트

- 웹 브라우저에서 사용자 행동의 발생을 자바스크립트 엔진 내부에 알리는 통지

 

이벤트 핸들러 작성방법
1. HTML태그 내 삽입형(종속적)

<script type="text/javascript">
 function fun1() {
  alert("이벤트 첫 시간이네요");
 }
</script>
<body onload="fun1();">


2. 객체 이벤트 속성에 직접 코드 삽입형(웹 표준)

<script type="text/javascript">
 function fun1() {
  alert("이벤트 첫 시간이네요");
 }
 window.onload = fun1;
</script>

 

이벤트 핸들러의 고유 행위를 취소하는 방법
- 부적합한 데이터를 보냈을 때 취소한다.
-><a href="http://www.yahoo.co.kr" onclick="return false">이동할 수 없는 링크</a>

 

이벤트 핸들링
- 실습예제 참조

cross 브라우저

 

 

이벤트 버블

- 이벤트가 흘러가는 현상
- 이벤트가 흘러가면 계층 구조 상에 이벤트가 지나가는 모든 객체에 대해서 설정된 해당 이벤트 헨들러가 호출 된다.

버블링을 막아주는 소스
event.cancelBubble = true;

 

srcElement 프로퍼티
- 이벤트가 발생한 객체에 대한 레퍼런스로서 어떤 객체에서 이벤트가 발생한 것인지 가르킨다.

presentation / business
- '어떻게 분리시킬 것인가?' 제일 관건..
따로따로 동작을 해야만 유지보수성이 높아진다.
분리를 시켜야함.

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=EUC-KR">
<title>이벤트 버블 예제</title>
<script type="text/javascript">

function docClick() {
 var str;
 color = Math.random()*255*255*255;
 document.body.bgColor = color;
}

function allowBubble(obj) {
 obj.style.backgroundColor = "orange";
 if(obj == nDiv)
  event.cancelBubble = true;
}

</script>
</head>
<body ondblclick = "docClick()">
<h3>이벤트 버블을 중단시키는 예</h3>
바탕을 더블클릭하면 바탕색이 임의적으로 변합니다.
<hr>
<div id="eDiv" class="eDiv" ondblclick="allowBubble(this)">
이벤트 버블이 일어나는 단락
</div><br><br>
<div id="nDiv" class="nDiv" ondblclick="allowBubble(this)">
이벤트 버블을 막아주는 단락
</div>
</body>
</html>

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

[javaScript] Document  (0) 2019.05.16
[javaScript] Form  (0) 2019.05.16
[javaScript] 정규표현식, 이벤트, 이벤트핸들러, 이벤트 버블 실습  (0) 2019.05.16
[javaScript] 기초 실습  (0) 2019.05.16
[javaScript] 기초  (0) 2019.05.16