Java์์ ๋ฐ์ดํฐ ๊ฐ์ format ํฌ๋งท์ ์ฒดํฌํ๋ ๋ฐฉ๋ฒ์ ์์๋ณด๊ฒ ์ต๋๋ค.
์๋ฐ์์ ๋ฐ์ดํฐ format validation์๋ ๋ค์ํ ๋ฐฉ๋ฒ์ด ์กด์ฌํ์ง๋ง,
์ด๋ฒ ํฌ์คํ ์์๋ ๊ทธ ์ค์์๋ java.util.regex.Matcher ์ java.util.regex.Pattern์ ํ์ฉํ ์์ ์ฝ๋๋ฅผ ์ ๋ฆฌ ํด ๋ณด๋๋ก ํ๊ฒ ์ต๋๋ค.
JAVA๋ก Format Check ํ๊ธฐ - regex
1. regex ํจํค์ง import ํ๊ธฐ
...
import java.util.regex.Matcher;
import java.util.regex.Pattern;
...
์ด๋ฒ ํฌ์คํ ์์ ์ฌ์ฉํ ๋ ๊ฐ์ง regex ํจํค์ง๋ฅผ import ํฉ๋๋ค.
์๋ฐ์์๋ ์ ๊ทํํ์์ ์ฌ์ฉํ ๋ ๋ณดํต ์ด ํจํค์ง๋ฅผ ์ฌ์ฉํฉ๋๋ค.
2. ์๊ณ ๋ฆฌ์ฆ ์๊ฐํ๊ธฐ
์ ๊ฐ ์๊ฐํ ์๊ณ ๋ฆฌ์ฆ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
์ด๋ ํ input ์ด ์์์ ๋, ๊ทธ format์ type์ ๋ฐ์ต๋๋ค.
๊ทธ๋ฆฌ๊ณ ๊ทธ type์ ๋ฐ๋ผ์ format์ ์ ๊ทํํ์์ ์ง์ ํด์ค๋๋ค.
input -> ์ ํ๋ฒํธ type ์ผ ๊ฒฝ์ฐ -> ์ ํ๋ฒํธ ์ ๊ทํํ์์ ๋๊ฒจ์ค -> Matchํ๋์ง check
๋ก ์ ๋ฆฌํ ์ ์๊ฒ ์ต๋๋ค.
3. ์ ๊ท ํํ์ ํ์ธํ๊ธฐ
์ซ์ - [0-9] ๋๋ \d
์์ด - [a-zA-Z] ๋๋ \w
ํ๊ธ - [๊ฐ-ํฃ]
[ ] ๋ ๊ทธ ์์ ์๋ ๋ฌธ์ ์ค ํ ๊ฐ ๋ง์ ๊ณ ๋ฅธ๋ค๋ ๋ป์ ๋๋ค.
์ฌ๋ฌ๊ฐ๋ฅผ ๊ณ ๋ฅด๋ ค๋ฉด ์ค๋ฅธํธ์ ์๋ฆฟ์๋ฅผ ์ถ๊ฐํด์ค๋๋ค
์๋ฆฟ์ - {์ซ์}
ํํ์์ด ์๋, ์ผ๋ฐ ๋ฌธ์๋ก ์ทจ๊ธํ๋ ๋ฒ - \\ ๋ค์ ์์ฑ
์์ฃผ ์ฐ์ด๋ ์ ๊ท ํํ์
\\w+@\\w+\\.\\w+(\\.\\w+)?
๋๋
^[a-zA-Z0-9]+@[a-zA-Z0-9]+\\.[a-z]+$
ํด๋ํฐ ๋ฒํธ
^01(?:0|1|[6-9])-(?:\\d{3}|\\d{4})-\\d{4}$
์ ํ ๋ฒํธ
^(01[016789]{1}|02|0[3-9]{1}[0-9]{1})([0-9]{3,4})([0-9]{4})$
๋ ์ง, ์๋ ์์ผ (8์๋ฆฌ)
(19|20)\\d{2}(0[1-9]|1[012])(0[1-9]|[12][0-9]|3[01])
4. ์ฝ๋ ์์ฑํ๊ธฐ
boolean check = false;
String regex = "";
switch (format) {
case "yyyymmddhhmiss":
regex = "(19|20)\\d{2}(0[1-9]|1[012])(0[1-9]|[12][0-9]|3[01])(0[0-9]|1[0-9]|2[0-3])([0-5][0-9])([0-5][0-9])";
break;
case "yyyymmdd":
regex = "(19|20)\\d{2}(0[1-9]|1[012])(0[1-9]|[12][0-9]|3[01])";
break;
case "phone":
regex = "^01(?:0|1|[6-9])(\\d{3}|\\d{4})(\\d{4})$";
break;
case "tel":
regex = "^(01[016789]{1}|02|0[3-9]{1}[0-9]{1})([0-9]{3,4})([0-9]{4})$";
break;
default:
break;
}
if (!"".equals(regex)) {
Pattern pattern = Pattern.compile(regex);
Matcher matcher = pattern.matcher(txt);
check = matcher.find();
}
check๋ true ๋๋ false๋ก ๋ฐํ๋ฉ๋๋ค.
์ด๋ฒ ํฌ์คํ ์ ์ด๋ ๊ฒ ๊ฐ๋จํ ์ ๊ทํํ์์ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ๊ณผ ์ฝ๋ ์์ฑ ์์ ๋ฅผ ์ดํด๋ณด์์ต๋๋ค.
์ ๊ท ํํ์ ๋ฌธ๋ฒ์ ๋ฐ๋ก ๊ณต๋ถํ์๋ฉด ๋ค์ํ format ์ ํ ์์ฉ์ด ๊ฐ๋ฅํฉ๋๋ค.
๋๊ธ