μ ν¨μ± κ²μ¬
: λ°μ΄ν°μ μ μ μ±μ νμΈνλ κ³Όμ
μ κ· ννμ
: λ¬Έμμ΄μ νΉμ ννλ₯Ό μ°Ύμλ΄κΈ° μν ν¨ν΄ ννμ
let λ³μλͺ
= /μ κ· ννμ/[Flag]
JavaScript
볡μ¬
let λ³μλͺ
= new RegExp('μ κ· ννμ' , ['Flag'] )
JavaScript
볡μ¬
flag
β’
i : ignore case : λλ¬Έμ μλ¬Έμλ₯Ό ꡬλΆμμ΄ κ²μΆ
β’
g : global : λ¬Έμμ΄μ λ΄μ λͺ¨λ ν¨ν΄ κ²μΆ
β’
m : multi : λ¬Έμμ΄μ μ€λ°κΏμ΄ μλμ§ κΉμ§λ κ²μΆ
ꡬ문 | μ€λͺ
| μμ |
λ¬Έμ | μΌλ° λ¬Έμλ μμ²΄λ‘ λ§€μΉλ©λλ€. | abcλ "abc"μ λ§€μΉ |
. | μ΄λ€ λ¬Έμ νλμ 맀μΉλ©λλ€. | a.cλ "abc"μ λ§€μΉ |
\d | μ«μ(digit)μ 맀μΉλ©λλ€. | \d+λ "123"μ λ§€μΉ |
\D | μ«μκ° μλ λ¬Έμμ 맀μΉλ©λλ€. | \D+λ "abc"μ λ§€μΉ |
\w | λ¬Έμ(word character)μ 맀μΉλ©λλ€. | \w+λ "hello"μ λ§€μΉ |
\W | λ¬Έμκ° μλ λ¬Έμμ 맀μΉλ©λλ€. | \W+λ "123!"μ λ§€μΉ |
\s | 곡백 λ¬Έμμ 맀μΉλ©λλ€. | \s+λ " \t\n"μ λ§€μΉ |
\S | κ³΅λ°±μ΄ μλ λ¬Έμμ 맀μΉλ©λλ€. | \S+λ "abc123"μ λ§€μΉ |
^ | λ¬Έμμ΄μ μμκ³Ό 맀μΉλ©λλ€. | ^abcλ "abcdef"μ 맀μΉνμ§ μμ |
$ | λ¬Έμμ΄μ λκ³Ό 맀μΉλ©λλ€. | xyz$λ "xyz123"μ 맀μΉνμ§ μμ |
[abc] | λκ΄νΈ μμ μ΄λ€ λ¬Έμ(a, b, c)μ 맀μΉλ©λλ€. | [aeiou]λ "apple"μμ "a"μ λ§€μΉ |
[^abc] | λκ΄νΈ μμ μ΄λ€ λ¬Έμ(a, b, c)λ₯Ό μ μΈν λ¬Έμμ 맀μΉλ©λλ€. | [^aeiou]λ "apple"μμ "p", "l" λ±κ³Ό λ§€μΉ |
[a-z] | aλΆν° zκΉμ§ λ²μμ λ¬Έμμ 맀μΉλ©λλ€. | [a-z]+λ "hello"μμ "hello"μ λ§€μΉ |
(x) | κ·Έλ£Ήμ λνλ΄λ©°, xλ₯Ό 맀μΉν©λλ€. | (abc)+λ "abcabc"μ λ§€μΉ |
x|y | x λλ y 맀μΉν©λλ€ | x|y λ βxβ λλ βyβ μ λ§€μΉ |
x? | xκ° 0 λλ 1ν λνλ λ 맀μΉν©λλ€. | ab?cλ "abc"μ "ac"μ λ§€μΉ |
x* | xκ° 0ν μ΄μ λνλ λ 맀μΉν©λλ€. | ab*cλ "ac", "abc", "abbc" λ±κ³Ό λ§€μΉ |
x+ | xκ° 1ν μ΄μ λνλ λ 맀μΉν©λλ€. | ab+cλ "abc", "abbc" λ±κ³Ό λ§€μΉ |
x{m} | xκ° μ νν mν λνλ λ 맀μΉν©λλ€. | a{2}λ "aa"μ λ§€μΉ |
x{m, n} | xκ° μ΅μ mνμμ μ΅λ nνκΉμ§ λνλ λ 맀μΉν©λλ€. | a{1,3}λ "a", "aa", "aaa"μ λ§€μΉ |
x{m,} | xκ° μ΅μ mν μ΄μ λνλ λ 맀μΉν©λλ€. | a{2,}λ "aa", "aaa" λ±κ³Ό λ§€μΉ |
x | y | x λλ yμ 맀μΉλ©λλ€. |
μ κ·ννμ λ©μλ
β’
test( ) : λ¬Έμμ΄μ΄ μ§μ ν μ κ·ννμμ λΆν©νμ§ μ¬λΆ λ°ν (true/false)
β’
exec( ) : λ¬Έμμ΄μ΄ μ§μ ν μ κ·ννμμ λΆν©ν λ¬Έμμ΄μ μΆμΆνμ¬ λ°ν
μμ΄λ κ²μ¬
β’
μμ΄, νκΈ, μ«μλ§ λΆν©
/^[a-zA-Z0-9γ±-γ
γ
-γ
£κ°-ν£]+$/
JavaScript
볡μ¬
let regExpId = /^[a-zA-Z0-9γ±-γ
γ
-γ
£κ°-ν£]+$/
Java
볡μ¬
μ΄λ¦ κ²μ¬
β’
νκΈλ§ λΆν©
/^[κ°-ν£]*$/
JavaScript
볡μ¬
let regExpName = /^[κ°-ν£]*$/
Java
볡μ¬
μ νλ²νΈ κ²μ¬
β’
XXX-XXX-XXXX λλ XXX-XXXX-XXXX λ§ λΆν©
/^\d{3}-\d{3,4}-\d{4}$/
JavaScript
볡μ¬
let regExpPhone = /^\d{3}-\d{3,4}-\d{4}$/
Java
볡μ¬
μ΄λ©μΌ κ²μ¬
β’
(첫κΈμ μλ¬Έμ)(μμ΄,μ«μ, _ - . )@(μμ΄).(μμ΄)
/^[0-9a-zA-Z]([-_\.]?[0-9a-zA-Z])*@[0-9a-zA-Z]([-_\.]?[0-9a-zA-Z])*\.[a-zA-Z]{2,3}$/i
JavaScript
볡μ¬
let regExpEmail = /^[0-9a-zA-Z]([-_\.]?[0-9a-zA-Z])*@[0-9a-zA-Z]([-_\.]?[0-9a-zA-Z])*\.[a-zA-Z]{2,3}$/i
Java
볡μ¬
λΉλ°λ²νΈ κ²μ¬
β’
μμ΄, μ«μ ν¬ν¨ 8κΈμ μ΄μ (νΉμλ¬Έμ νμ©)
/^(?=.*[A-Za-z])(?=.*\d)(?=.*[@$!%*?&])[A-Za-z\d@$!%*?&]{8,}$/
JavaScript
볡μ¬
let passwordPattern = /^(?=.*[A-Za-z])(?=.*\d)(?=.*[@$!%*?&])[A-Za-z\d@$!%*?&]{8,}$/;
JavaScript
볡μ¬
μμμ½λ
β’
Java λΌλ λ¬Έμ λμλ¬Έμ κ΅¬λΆ μμ΄ κ²μ¬
β’
μμ΄λ, μ΄λ¦, μ νλ²νΈ, μ΄λ©μΌ ν¨ν΄ κ²μ¬
β’
λ‘κ·ΈμΈ μ ν¨μ± κ²μ¬
β’
νμκ°μ
μ ν¨μ± κ²μ¬
Java λΌλ λ¬Έμ λμλ¬Έμ κ΅¬λΆ μμ΄ κ²μ¬
β’
regexp01.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>μ κ·ννμ</title>
</head>
<body>
<h1>μ κ·ννμ</h1>
<form name="form" onsubmit="return checkForm()">
<p>μ λͺ© : <input type="text" name="title" /></p>
<p><input type="submit" value="λ±λ‘" /></p>
</form>
<script>
function checkForm() {
let regExp = /Java/i // Java λΌλ λ¬Έμμ΄μ λμλ¬Έμ ꡬλΆμμ΄ κ²μ¬
let str = document.form.title.value
let result = regExp.exec(str)
// exec() : μ κ· ννμμ λΆν©ν λ¬Έμμ΄ λ°ν
// test() : μ κ· ννμμ λΆν©νμ§ μ¬λΆλ₯Ό λ°ν(true/false)
if( regExp.test(str) ) {
alert(result[0])
}
return false
}
</script>
</body>
</html>
HTML
볡μ¬
μμ΄λ, μ΄λ¦, μ νλ²νΈ, μ΄λ©μΌ ν¨ν΄ κ²μ¬
β’
regexp02.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>μ κ·ννμ</title>
</head>
<body>
<h1>μ κ·ννμ</h1>
<form name="form" onsubmit="return checkForm()">
<p>μ λͺ© : <input type="text" name="title" /> </p>
<p>μμ΄λ : <input type="text" name="id" /> </p>
<p>μ΄λ¦ : <input type="text" name="name" /> </p>
<p>μ νλ²νΈ : <select name="phone1">
<option value="010">010</option>
<option value="011">011</option>
<option value="016">016</option>
<option value="017">017</option>
<option value="019">019</option>
</select>
- <input type="text" maxlength="4" size="4" name="phone2">
- <input type="text" maxlength="4" size="4" name="phone3">
<p>μ΄λ©μΌ : <input type="text" name="email" /> </p>
<p><input type="submit" value="λ±λ‘" /> </p>
</form>
<script>
// νμκ°μ
μ κ· ννμμΌλ‘ μ ν¨μ± κ²μ¬
function checkForm() {
// μμ΄λ ν¨ν΄ : μλ¬Έμ, νκΈ μμ
let regExpId = /^[a-zA-Zγ±-γ
γ
-γ
£κ°-ν£]+$/
// μ΄λ¦ ν¨ν΄ : νκΈ
let regExpName = /^[κ°-ν£]*$/
// μ νλ²νΈ ν¨ν΄ : [3μ리 μ«μ]-[3~4μ리 μ«μ]-[4μ리 μ«μ]
let regExpPhone = /^\d{3}-\d{3,4}-\d{4}$/
// μ΄λ©μΌ ν¨ν΄ [μ«μ,μλ¬Έμ]@[μ«μ,μλ¬Έμ].~~.[μλ¬Έμ2~3μ리]
// OOO@OOOO.com
// OOO@OOOO.co.kr
// OOO@OOOO.ac.kr
// OOO@OOOO.org
let regExpEmail = /^[0-9a-zA-Z](-_\.)?[0-9a-zA-Z]*@[0-9a-zA-Z](-_\.)?[0-9a-zA-Z]*\.[a-zA-Z]{2,3}$/i
// λΆμ - /^[0-9a-zA-Z](-_\.)?[0-9a-zA-Z]*
// /^[0-9a-zA-Z](-_\.)?[0-9a-zA-Z]*
// ^[0-9a-zA-Z] : μμμ μ«μ λλ μμ΄
// (-_\.)? : μ€κ°μ -, _, . 0 λλ 1ν κ°λ₯
// [0-9a-zA-Z]* : κ·Έ νμλ μ«μ λλ μμ΄κ° 0 λλ 1νμ΄μ
// μ 체 λΆμ
// (1) : /^[0-9a-zA-Z](-_\.)?[0-9a-zA-Z]*
// (2) : @
// (3) : [0-9a-zA-Z](-_\.)?[0-9a-zA-Z]*
// (4) : .
// (5) : [a-zA-Z]{2,3}$/i
// κ°λ₯
// joeun
// joeun1004
// joeun_1004
// joeun-1004
// 1004joeun
// 1004-joeun
// joeun.1004
// λΆκ°λ₯
// -joeun
// _jouen
let id = form.id.value
let name = form.name.value
let phone = form.phone1.value + "-" + form.phone2.value + "-" + form.phone3.value
let email = form.email.value
// test() : λΆν©O-true, λΆν©X-false
if( !regExpId.test(id) ) {
alert('μμ΄λλ₯Ό νμμ λ§κ² μ
λ ₯ν΄μ£ΌμΈμ')
return false
}
if( !regExpName.test(name) ) {
alert('μ΄λ¦ νμμ λ§κ² μ
λ ₯ν΄μ£ΌμΈμ')
return false
}
if( !regExpPhone.test(phone) ) {
alert('μ νλ²νΈ νμμ λ§κ² μ
λ ₯ν΄μ£ΌμΈμ')
return false
}
if( !regExpEmail.test(email) ) {
alert('μ΄λ©μΌ νμμ λ§κ² μ
λ ₯ν΄μ£ΌμΈμ')
return false
}
}
</script>
</body>
</html>
HTML
볡μ¬
λ‘κ·ΈμΈ μ ν¨μ± κ²μ¬
β’
validation01.jsp
β’
validation01_pro.jsp
β’
validation01.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>μμ΄λ λΉλ°λ²νΈ μ ν¨μ± κ²μ¬</title>
</head>
<body>
<h1>λ‘κ·ΈμΈ</h1>
<h3>μ ν¨μ± κ²μ¬</h3>
<!--
onsubmit="return μ¬λΆ"
- μ¬λΆ : true μ΄λ©΄, submit(μμ²μ μ‘)
false μ΄λ©΄, sumbmit μ ν¨
-->
<form name="loginForm" onsubmit="return checkLogin()" action="validation01_pro.jsp" method="post">
<p>μμ΄λ : <input type="text" name="id" maxlength="20" /></p>
<p>λΉλ°λ²νΈ : <input type="password" name="pw" /></p>
<p><input type="submit" value="λ‘κ·ΈμΈ"></p>
</form>
<script>
// λ‘κ·ΈμΈ μ ν¨μ± κ²μ¬
function checkLogin() {
// alert("λ‘κ·ΈμΈ μμ²")
let form = document.loginForm // nameμ΄ loginForm μΈ νΌ μμλ₯Ό κ°μ Έμ΄
let id = form.id.value
let pw = form.pw.value
// alert(id)
// alert(pw)
// 1. μμ΄λλ νμκ°, 6~20μ μ΄λ΄
// μμ΄λ μ
λ ₯μ¬λΆ κ²μ¦
if( id == "" ) {
alert('μμ΄λλ₯Ό μ
λ ₯ν΄μ£ΌμΈμ')
form.id.focus() // id input νκ·Έμ ν¬μ»€μ€
return false
}
// μμ΄λ κΈμ μ κ²μ¦
if( id.length < 6 || id.length > 20 ) {
alert('μμ΄λλ 6~20μ μ΄λ΄λ‘ μ
λ ₯ κ°λ₯ν©λλ€.')
form.id.select() // id μ
λ ₯ κ°μ μ ν
return false
}
// 2. λΉλ°λ²νΈλ νμκ°, 6μ μ΄μ
// λΉλ°λ²νΈ μ
λ ₯μ¬λΆ κ²μ¦
if( pw == "" ) {
alert('λΉλ°λ²νΈλ₯Ό μ
λ ₯ν΄μ£ΌμΈμ')
form.pw.focus() // pw input νκ·Έμ ν¬μ»€μ€
return false
}
// λΉλ°λ²νΈ κΈμ μ κ²μ¦
if( pw.length < 6 ) {
alert('λΉλ°λ²νΈλ 6μ μ΄μμΌλ‘ μ
λ ₯ν΄μΌν©λλ€.')
form.id.select() // pw μ
λ ₯ κ°μ μ ν
return false
}
return true
}
</script>
</body>
</html>
HTML
볡μ¬
β’
validation01_pro.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>μ ν¨μ± κ²μ¬</title>
</head>
<body>
<h3>λ‘κ·ΈμΈμ μ±κ³΅νμ΅λλ€.</h3>
<%
request.setCharacterEncoding("UTF-8");
String id = request.getParameter("id");
String pw = request.getParameter("pw");
%>
<p>μμ΄λ : <%= id %> </p>
<p>λΉλ°λ²νΈ : <%= pw %> </p>
</body>
</html>
HTML
볡μ¬
νμκ°μ μ ν¨μ± κ²μ¬
β’
validation02.jsp
β’
validation02_pro.jsp
β’
validation02.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<h1>νμκ°μ
</h1>
<h3>μ ν¨μ± κ²μ¬</h3>
<form name="joinForm" onsubmit="return checkJoin()" action="validation02_pro.jsp" method="post">
<p>μμ΄λ : <input type="text" name="id" maxlength="20" /></p>
<p>λΉλ°λ²νΈ : <input type="password" name="pw" /></p>
<p>μ΄λ¦ : <input type="text" name="name" /></p>
<p>λμ΄ : <input type="text" name="age" onkeyup="checkNumber()" /></p>
<p><input type="submit" value="νμκ°μ
"></p>
</form>
<script>
// νμκ°μ
μ ν¨μ± κ²μ¬
function checkJoin() {
let form = document.joinForm // nameμ΄ joinForm μΈ νΌ μμλ₯Ό κ°μ Έμ΄
let id = form.id.value
let pw = form.pw.value
// alert(id)
// alert(pw)
// 1. μμ΄λλ νμκ°, 6~20μ μ΄λ΄
// μμ΄λ μ
λ ₯μ¬λΆ κ²μ¦
if( id == "" ) {
alert('μμ΄λλ₯Ό μ
λ ₯ν΄μ£ΌμΈμ')
form.id.focus() // id input νκ·Έμ ν¬μ»€μ€
return false
}
// μμ΄λ κΈμ μ κ²μ¦
if( id.length < 6 || id.length > 20 ) {
alert('μμ΄λλ 6~20μ μ΄λ΄λ‘ μ
λ ₯ κ°λ₯ν©λλ€.')
form.id.select() // id μ
λ ₯ κ°μ μ ν
return false
}
// 2. λΉλ°λ²νΈλ νμκ°, 6μ μ΄μ
// λΉλ°λ²νΈ μ
λ ₯μ¬λΆ κ²μ¦
if( pw == "" ) {
alert('λΉλ°λ²νΈλ₯Ό μ
λ ₯ν΄μ£ΌμΈμ')
form.pw.focus() // id input νκ·Έμ ν¬μ»€μ€
return false
}
// λΉλ°λ²νΈ κΈμ μ κ²μ¦
if( pw.length < 6 ) {
alert('λΉλ°λ²νΈλ 6μ μ΄μμΌλ‘ μ
λ ₯ν΄μΌν©λλ€.')
form.id.select() // id μ
λ ₯ κ°μ μ ν
return false
}
// 3. μ΄λ¦μ νμκ°, 첫κΈμλ μ«μλ‘ μ¬μ© λΆκ°
let name = form.name.value
if( name == "" ) {
alert('μ΄λ¦μ μ
λ ₯ν΄μ£ΌμΈμ')
form.name.focus()
return false
}
// isNaN() : μ«μκ° μλλ©΄ true
if( !isNaN( name.substr(0, 1) ) ) {
alert('μ΄λ¦μ μ«μλ‘ μμν μ μμ΅λλ€.')
form.name.select()
return false
}
return true
}
// λμ΄ μ ν¨μ± κ²μ¬
function checkNumber() {
let form = document.joinForm
console.log( event.keyCode )
// μ«μκ° μλ κ²½μ°
if( !(event.keyCode >= 48 && event.keyCode <= 57 ) ) {
alert('μ«μλ§ μ
λ ₯ κ°λ₯ν©λλ€.')
event.returnValue = false
form.age.value = ''
}
}
</script>
</body>
</html>
HTML
볡μ¬
β’
validation02_pro.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>μ ν¨μ± κ²μ¬</title>
</head>
<body>
<h3>νμκ°μ
μ μ±κ³΅νμ΅λλ€.</h3>
<%
request.setCharacterEncoding("UTF-8");
String id = request.getParameter("id");
String pw = request.getParameter("pw");
String name = request.getParameter("name");
String age = request.getParameter("age");
%>
<p>μμ΄λ : <%= id %> </p>
<p>λΉλ°λ²νΈ : <%= pw %> </p>
<p>μ΄λ¦ : <%= name %> </p>
<p>λμ΄ : <%= age %> </p>
</body>
</html>
HTML
볡μ¬