๋ชจ๋ ๊ฐ๋ฐ์๊ฐ ์์์ผ ํ 20๊ฐ์ง ์ผ๋ฐ์ ์ธ ์ ๊ท์ ํจํด
๋ชจ๋ ๊ฐ๋ฐ์๊ฐ ์์์ผ ํ 20๊ฐ์ง ์ผ๋ฐ์ ์ธ ์ ๊ท์ ํจํด
์ ๊ท์์ ์ ๋ ฅ ์ ํจ์ฑ ๊ฒ์ฌ, ๋ฐ์ดํฐ ์ถ์ถ, ๋ฌธ์์ด ๋ณํ ๋ฑ ์ค์ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํฉ๋๋ค. ์ด ๊ฐ์ด๋๋ ๊ฐ์ฅ ์ผ๋ฐ์ ์ธ ํ ์คํธ ์ฒ๋ฆฌ ์์ ์ ๋ค๋ฃจ๋ 20๊ฐ์ง ๋ฐ๋ก ์ฌ์ฉํ ์ ์๋ ์ ๊ท์์ ์ ๊ณตํฉ๋๋ค. ๊ฐ ํจํด์๋ ๋ฌด์๊ณผ ์ผ์นํ๋์ง์ ๋ํ ์ค๋ช ์ด ํฌํจ๋์ด ์์ต๋๋ค.
1. ์ด๋ฉ์ผ ์ฃผ์
^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$
๋ก์ปฌ ๋ถ๋ถ์๋ ๋ฌธ์, ์ซ์, ์ , ํน์ ๋ฌธ์๊ฐ ํ์ฉ๋ฉ๋๋ค. ๋๋ฉ์ธ์๋ ๋ฌธ์, ์ซ์, ์ ์ด ํ์ฉ๋ฉ๋๋ค. TLD๋ ์ต์ ๋ ๊ธ์ ์ด์์ด์ด์ผ ํฉ๋๋ค.
2. URL
https?:\/\/(www\.)?[-a-zA-Z0-9@:%._\+~#=]{1,256}\.[a-zA-Z]{2,}\b([-a-zA-Z0-9@:%_\+.~#?&//=]*)
์ ํ์ www, ๋๋ฉ์ธ ์ด๋ฆ, TLD, ๊ฒฝ๋ก ๋ฐ ์ฟผ๋ฆฌ ๋ฌธ์์ด์ด ์๋ HTTP/HTTPS URL๊ณผ ์ผ์นํฉ๋๋ค.
3. ๋ฏธ๊ตญ ์ ํ๋ฒํธ
^\(?(\d{3})\)?[-.\s]?(\d{3})[-.\s]?(\d{4})$
(555) 123-4567, 555-123-4567, 555.123.4567, 5551234567๊ณผ ์ผ์นํฉ๋๋ค.
4. ๊ตญ์ ์ ํ๋ฒํธ
^\+?(\d{1,3})\s?[-.\s]?\(?\d{1,4}\)?[-.\s]?\d{1,4}[-.\s]?\d{1,9}$
๊ตญ๊ฐ ์ฝ๋๊ฐ ์๋ ๊ตญ์ ์ ํ๋ฒํธ๋ฅผ ์ํ ๊ด๋ํ ํจํด์ ๋๋ค.
5. ๊ฐ๋ ฅํ ๋น๋ฐ๋ฒํธ
^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[@$!%*?&])[A-Za-z\d@$!%*?&]{8,}$
8์ ์ด์, ์๋ฌธ์ ํ๋, ๋๋ฌธ์ ํ๋, ์ซ์ ํ๋, ํน์ ๋ฌธ์ ํ๋๊ฐ ํ์ํฉ๋๋ค. ์ ๋ฐฉ ํ์ ์ด์์ ์ ์ฌ์ฉํฉ๋๋ค.
6. ๋ ์ง (YYYY-MM-DD)
^\d{4}-(0[1-9]|1[0-2])-(0[1-9]|[12]\d|3[01])$
ISO 8601 ํ์์ ๋๋ค. ์ 01-12, ์ผ 01-31์ ๋๋ค. ์๋ณ ํ๋(2์ 30์ผ ํต๊ณผ)๋ฅผ ๊ฒ์ฆํ์ง ์์ต๋๋ค.
7. ๋ ์ง (MM/DD/YYYY)
^(0[1-9]|1[0-2])\/(0[1-9]|[12]\d|3[01])\/\d{4}$
์ฌ๋์๊ฐ ์๋ ๋ฏธ๊ตญ ํ์์ ๋๋ค.
8. ์๊ฐ (HH:MM 24์๊ฐ์ )
^([01]\d|2[0-3]):[0-5]\d$
์๊ฐ 00-23, ๋ถ 00-59์ ๋๋ค.
9. IPv4 ์ฃผ์
^(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})$
4๊ฐ์ ์ฅํ
์
๋๋ค. ์๊ฒฉํ ๊ฒ์ฆ(0-255)์ ์ํด์๋ \d{1,3}์ (25[0-5]|2[0-4]\d|[01]?\d\d?)๋ก ๋ฐ๊พธ์ธ์.
10. IPv6 ์ฃผ์
^([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}$
8๊ฐ ๊ทธ๋ฃน์ 16์ง์ ์ซ์๋ก ๋ ์ ์ฒด IPv6์
๋๋ค. :: ์ฝ์ด๋ฅผ ์ฒ๋ฆฌํ์ง ์์ต๋๋ค.
11. MAC ์ฃผ์
^([0-9A-Fa-f]{2}[:-]){5}([0-9A-Fa-f]{2})$
์ฝ๋ก ๋๋ ํ์ดํ์ผ๋ก ๊ตฌ๋ถ๋ฉ๋๋ค.
12. 16์ง์ ์์ ์ฝ๋
^#([0-9a-fA-F]{3}|[0-9a-fA-F]{6})$
3์๋ฆฌ(#fff) ๋๋ 6์๋ฆฌ(#ffffff), ๋์๋ฌธ์ ๊ตฌ๋ถ ์์.
13. ์ ์ฉ์นด๋ ๋ฒํธ
^\d{4}[\s-]?\d{4}[\s-]?\d{4}[\s-]?\d{4}$
์ ํ์ ๊ตฌ๋ถ ๊ธฐํธ๊ฐ ์๋ 16์๋ฆฌ ์ซ์์ ๋๋ค. Luhn ์ฒดํฌ์ฌ์ ๊ฒ์ฆํ์ง ์์ต๋๋ค.
14. ๋ฏธ๊ตญ ์ฐํธ๋ฒํธ
^\d{5}(-\d{4})?$
12345 ๋๋ 12345-6789์
๋๋ค.
15. ์ฌ์ฉ์ ์ด๋ฆ
^[a-zA-Z0-9_]{3,16}$
3-16์์ ๋ฌธ์, ์ซ์, ๋ฐ์ค๋ง ํ์ฉ๋ฉ๋๋ค.
16. URL ์ฌ๋ฌ๊ทธ
^[a-z0-9-]+$
์๋ฌธ์, ์ซ์, ํ์ดํ๋ง ํ์ฉ๋ฉ๋๋ค. CMS ์์คํ ์์ ์ผ๋ฐ์ ์ ๋๋ค.
17. HTML ํ๊ทธ
<\/?[\w\s]*>|<.+[\w\s]*>
์ฌ๋ ํ๊ทธ์ ๋ซ๋ ํ๊ทธ๋ฅผ ์ผ์น์ํต๋๋ค. ์ค์ฒฉ๋ HTML์๋ ์ ํฉํ์ง ์์ต๋๋ค.
18. ํ์ผ ํ์ฅ์
\.([a-zA-Z]{2,})$
์ ์์ด ํ์ฅ์๋ฅผ ์ถ์ถํฉ๋๋ค.
19. ๊ณต๋ฐฑ ์ ๊ทํ
\s+
์ฌ๋ฌ ๊ฐ์ ๊ณต๋ฐฑ, ํญ ๋๋ ์ค๋ฐ๊ฟ์ ํ๋๋ก ์ถ์ํฉ๋๋ค.
20. ์ซ์ ์ถ์ถ
-?\d+(\.\d+)?
์์๋ฅผ ํฌํจํ ์ ์์ ์์์ ๋๋ค.
์ฑ๋ฅ ํ
- ๊ตฌ์ฒด์ ์ผ๋ก ์์ฑํ์ธ์ โ ์น๋ช
์ ์ธ ์ญ์ถ์ ์ ์ผ์ผํฌ ์ ์๋
.*๋ฅผ ํผํ์ธ์. - ๊ฒ์ ๋ฒ์๋ฅผ ์ ํํ๋ ค๋ฉด
^์$๋ก ์ต์ปค๋งํ์ธ์. - ์ฃ์ง ์ผ์ด์ค๋ฅผ ํ ์คํธํ์ธ์: ๋น ๋ฌธ์์ด, ๊ธด ๋ฌธ์์ด, ํน์ ๋ฌธ์.
์จ๋ผ์ธ์์ ์ด ํจํด ํ ์คํธํ๊ธฐ
์ ๊ท์ ํ ์คํฐ ๋๊ตฌ๋ฅผ ์ฌ์ฉํ์ฌ ์ด ํจํด๋ค์ ์คํํด ๋ณด์ธ์. ํํ์์ ๋ถ์ฌ๋ฃ๊ณ ์ํ ํ ์คํธ๋ฅผ ์ ๋ ฅํ๋ฉด ์ผ์น ํญ๋ชฉ์ด ์ค์๊ฐ์ผ๋ก ๊ฐ์กฐ ํ์๋ฉ๋๋ค. ํ ์คํฐ๋ ์บก์ฒ ๊ทธ๋ฃน์ ๋ณด์ฌ์ฃผ๊ณ ์ฌ์ฉ ์ ์ ํจํด์ ๋๋ฒ๊น ํ๋ ๋ฐ ๋์์ ์ค๋๋ค.