๐Ÿ’ปProgramming/๐Ÿƒ‍โ™€๏ธJavaScript

[JavaScript] 08. ์ •๊ทœ์‹

yeony._. 2022. 9. 26. 22:10

์ •๊ทœ์‹ 

์œ ํšจ์„ฑ ๊ฒ€์‚ฌ๋ฅผ ํ•  ๋•Œ ๊ฐ€์žฅ ๋งŽ์ด ์‚ฌ์šฉ๋˜๋Š” ๊ฒƒ 

์‚ฌ์šฉ ๋ฐฉ๋ฒ•์„ ์•Œ๊ณ  ์žˆ์œผ๋ฉด ์–ด๋ ต์ง€ ์•Š๊ฒŒ ์‚ฌ์šฉ ๊ฐ€๋Šฅ

๊ฒฝ์šฐ์— ๋”ฐ๋ผ์„œ๋Š” ์ •๊ทœ์‹์ด ์•„๋‹Œ ๋ฐฉ๋ฒ•์„ ์‚ฌ์šฉํ•ด์•ผ ํ•˜๋Š” ์ผ์ด ์žˆ์„ ์ˆ˜ ์žˆ์Œ

 

 

์ •๊ทœ์‹ ์ƒ์„ฑ ๋ฐฉ๋ฒ• 

RegExp ๊ฐ์ฒด ์ƒ์„ฑ

์ƒ์„ฑ์ž ๋ฐฉ์‹

var ๋ณ€์ˆ˜ = new RegExp(pattern[, flags]);

์ผ๋ฐ˜์ ์œผ๋กœ RegExp๋ฅผ ํ†ตํ•œ ๋ฐฉ๋ฒ•๋ณด๋‹ค๋Š” "์ •๊ทœ์‹ ๋ฆฌํ„ฐ๋„"์„ ์ด์šฉํ•จ 

ํŒŒ๋ผ๋ฏธํ„ฐ์—์„œ ๋”ฐ์˜ดํ‘œ๋ฅผ ์‚ฌ์šฉํ•˜๊ฑฐ๋‚˜ ์Šฌ๋ž˜์‰ฌ๋ฅผ ์‚ฌ์šฉํ•ด์•ผํ•œ๋‹ค. 

์ฒซ ๋ฒˆ์งธ ์ธ์ž๋Š” ํŒจํ„ด

๋‘ ๋ฒˆ์งธ ์ธ์ž๋Š” ํ”Œ๋ž˜๊ทธ

 

flags

g: ์ผ์น˜ํ•˜๋Š” ์ฒซ ๋ฒˆ์งธ ๋ฌธ์ž์—์„œ ๊ทธ์น˜์ง€ ์•Š๊ณ  ์ „์ฒด์—์„œ ์ผ์น˜ํ•˜๋Š” ๋ชจ๋“  ๋ฌธ์ž๋ฅผ ๊ฒ€์ƒ‰

i : ๋Œ€์†Œ๋ฌธ์ž๋ฅผ ๊ฐ™์€ ๋ฌธ์ž๋กœ ์ทจ๊ธ‰ํ•˜๊ณ  ์‹ถ๋‹ค๋ฉด ์‚ฌ์šฉ

 

 

 

๋ฆฌํ„ฐ๋Ÿด ๋ฐฉ์‹

var p = /ab+c/i;

/ /์‚ฌ์ด์— ์ •๊ทœ์‹์„ ์ž…๋ ฅํ•˜๊ณ , ํ™‘๋”ฐ์˜ดํ‘œ๋‚˜ ์Œ๋”ฐ์˜ดํ‘œ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†์Œ 

์ฃผ๋กœ ์ด ๋ฐฉ์‹์„ ์‚ฌ์šฉํ•œ๋‹ค. 

 

var p = new RegExp('ab+c', 'i');
var p = new RegExp(/ab+c/, 'i'); // ECMAScript 6์—์„œ๋Š” ๊ฐ€๋Šฅํ•˜๋‹ค.

์ƒ์„ฑ์ž ๋ฐฉ์‹ : ํŒŒ๋ผ๋ฏธํ„ฐ์— ๋”ฐ์˜ดํ‘œ ์‚ฌ์šฉ 

 

 

์ •๊ทœ์‹ ํŒจํ„ด 

๋ฌธ์ž ํด๋ž˜์Šค ํŒจํ„ด

 

๋ฌธ์ž ์ง‘ํ•ฉ 

๋Œ€์ฒด ํŒจํ„ด 

๊ฒฝ๊ณ„ ํŒจํ„ด 

var s, p;

// ํ•œ ์ž ์ด์ƒ์˜ ์˜์ˆซ์ž
p = /^[a-zA-Z0-9]+$/;
p = /^[a-z0-9]+$/i;

// 1์ž ์ด์ƒ์˜ ์˜์ˆซ์ž์™€ _
p = /^\w+$/i;


// ๊ณต๋ฐฑ(ํƒญ) : \s
// ์˜๋ฌธ์ž์™€ ๊ณต๋ฐฑ 
p = /^[a-z\s]+$/i;
s = 'a b';
console.log(p.test(s)); // true 
s = 'a 1';
console.log(p.test(s)); // false

//x(?=y) : x ๋‹ค์Œ์— y๊ฐ€ ๋‚˜์˜ค๋Š” ๊ฒฝ์šฐ์—๋งŒ x์™€ ์ผ์น˜
// ์˜๋ฌธ์ž๋กœ ์‹œ์ž‘ํ•˜๊ณ  ์˜์ˆซ์ž์™€ _ ๊ฐ€๋Šฅ

p = /^(?=[a-z])(\w)*$/i;

s = 'a';
console.log(p.test(s));// true

s = '1a';
console.log(p.test(s));// false

s = 'a1';
console.log(p.test(s));// true

// | : ๋˜๋Š” 
// ์ž๋ฐ”, ์›น, java, web ํ•˜๋‚˜ ์ด์ƒ ์กด์žฌ ์—ฌ๋ถ€

p = /.*(?=์ž๋ฐ”|์›น|web|java).*/i;
p = /(?=์ž๋ฐ”|์›น|web|java)/i;

// ํ•œ๊ธ€์˜ ์ฝ”๋“œ : \uac00~\u7a3, ๊ฐ€~ํžฃ
// 1์ž ์ด์ƒ์˜ ํ•œ๊ธ€๋งŒ ๊ฐ€๋Šฅ 
p = /^[๊ฐ€-ํžฃ]+$/;
p = /^[\uac00~\u7a3] + $/;

 

 

๋‚ ์งœ ์ •๊ทœ์‹ 

var s, p;

// ๋‚ ์งœ, 2000-10-10, 2000.10.10 2000/10/10 200001010
p = /^\d{8}$/;

p = /^[12][0-9]{3}[\-\.\/]?[01][0-9][\-\.\/]?[0-3][0-9]$/;

s = "1101.10.10";
console.log(p.test(s)); // true
		
s = "2000.02.10";
console.log(p.test(s)); //false
		
// ์ด๋ฏธ์ง€ ํŒŒ์ผ
p = /(\.gif|\.jpg|\.jpeg|\.png)$/i;
s = "image.jpg";
console.log(p.test(s)); //false
		
// 5~ 10์ž ๋ฌธ์ž๋กœ ์˜๋ฌธ์ž์™€ ํ•˜๋‚˜ ์ด์ƒ์˜ ์ˆซ์ž๋‚˜ ํŠน์ˆ˜ ๋ฌธ์ž ํฌํ•จ 
p = /^(?=.*[a-z])(?=.*[!@#$%^]|.*[0-9]).{5,10}$/i;
		
// ?=.* ๋ญ๊ฐ€ ์™€๋„ ์ƒ๊ด€ ์—†๋Š”๋ฐ a-z๊นŒ์ง€๋Š” ์กด์žฌํ•ด์•ผ ํ•จ