๋กœ์ผ“๐Ÿพ
article thumbnail

 

๋ชจ๋“  ๊ณต๋ฐฑ ์ฒดํฌ ์ •๊ทœ์‹
var regExp = /\s/g;

 

์ˆซ์ž๋งŒ ์ฒดํฌ ์ •๊ทœ์‹
var regExp = /^[0-9]+$/;


์ด๋ฉ”์ผ ์ฒดํฌ ์ •๊ทœ์‹
var regExp = /^[0-9a-zA-Z]([-_\.]?[0-9a-zA-Z])*@[0-9a-zA-Z]([-_\.]?[0-9a-zA-Z])*\.[a-zA-Z]{2,3}$/i;


ํ•ธ๋“œํฐ๋ฒˆํ˜ธ ์ •๊ทœ์‹
var regExp = /^\d{3}-\d{3,4}-\d{4}$/;


์ผ๋ฐ˜ ์ „ํ™”๋ฒˆํ˜ธ ์ •๊ทœ์‹
var regExp = /^\d{2,3}-\d{3,4}-\d{4}$/;


์•„์ด๋””๋‚˜ ๋น„๋ฐ€๋ฒˆํ˜ธ ์ •๊ทœ์‹ 
var regExp = /^[a-z0-9_]{4,20}$/;


ํœด๋Œ€ํฐ๋ฒˆํ˜ธ ์ฒดํฌ ์ •๊ทœ์‹ 
var regExp = /^01([0|1|6|7|8|9]?)-?([0-9]{3,4})-?([0-9]{4})$/;

 

##############  ์ •๊ทœํ‘œํ˜„์‹

1. ํ™•์žฅ๋ฌธ์ž (: backslash)
    - s : ๊ณต๋ฐฑ ๋ฌธ์ž(์ŠคํŽ˜์ด์Šค, ํƒญ, ํผ ํ”ผ๋“œ, ๋ผ์ธ ํ”ผ๋“œ)
 
    - b : ๋‹จ์–ด์˜ ๊ฒฝ๊ณ„
    - B ์ด๋ฅผ ์ œ์™ธํ•œ ๋ชจ๋“  ๋ฌธ์ž ๋งค์นญ
 
    - d : ์ˆซ์ž
    - D : ์ˆซ์ž๊ฐ€ ์•„๋‹Œ ๋ฌธ์ž [^0-9] ์™€ ๋™์ผ
 
    - w : ์•ŒํŒŒ๋ฒณ, ์ˆซ์ž๋กœ ๋œ ๋ฌธ์ž, ๋ฐ‘์ค„ ๊ธฐํ˜ธ(_) [A-Za-z0-9]
    - W : w์˜ ๋ฐ˜๋Œ€ ๋ฌธ์ž [^A-Za-z0-9]
 
    - ํŠน์ˆ˜๋ฌธ์ž : ํŠน์ˆ˜๋ฌธ์ž ์ž์ฒด๋ฅผ ์˜๋ฏธ ์˜ˆ) + (+ ๊ธฐํ˜ธ ์ž์ฒด)
 
2. ํŠน์ˆ˜๋ฌธ์ž
    - * : 0ํšŒ ์ด์ƒ ๋ฐ˜๋ณต
    - + : 1ํšŒ ์ด์ƒ ๋ฐ˜๋ณต
    - ? : 0 ๋˜๋Š” 1๊ฐœ์˜ ๋ฌธ์ž ๋งค์นญ
    - . : ์ •ํ™•ํžˆ 1๊ฐœ ๋ฌธ์ž ๋งค์นญ
 
3. ํ”Œ๋ž˜๊ทธ
    - g : ์ „์—ญ๋งค์นญ
    - i : ๋Œ€์†Œ๋ฌธ์ž ๋ฌด์‹œ
    - m : ์—ฌ๋Ÿฌ ์ค„ ๋งค์นญ
 
4. ๊ธฐํƒ€
    - () : ๊ด„ํ˜ธ๋กœ ๋ฌถ์ธ ํŒจํ„ด์€ ๋งค์นญ๋œ ๋‹ค์Œ, ๊ทธ ๋ถ€๋ถ„์„ ๊ธฐ์–ตํ•œ๋‹ค.
    - $1,...,$9 : ๊ด„ํ˜ธ๋กœ ๊ฐญ์ฒ˜ํ•œ ๋ถ€๋ถ„ ๋ฌธ์ž์—ด์ด ์ €์žฅ ๋จ.
    - | : ~๋˜๋Š”~
    - {} : ๋ฐ˜๋ณต ํšŸ์ˆ˜


##############  ๊ฐ„๋‹จํ•œ ์ •๊ทœ ํ‘œํ˜„์‹
var re = /a/         --a ๊ฐ€ ์žˆ๋Š” ๋ฌธ์ž์—ด
var re = /a/i        --a ๊ฐ€ ์žˆ๋Š” ๋ฌธ์ž์—ด, ๋Œ€์†Œ๋ฌธ์ž ๊ตฌ๋ถ„ ์•ˆํ•จ
var re = /apple/    -- apple๊ฐ€ ์žˆ๋Š” ๋ฌธ์ž์—ด
var re = /[a-z]/    -- a~z ์‚ฌ์ด์˜ ๋ชจ๋“  ๋ฌธ์ž
var re = /[a-zA-Z0-9]/    -- a~z, A~Z 0~9 ์‚ฌ์ด์˜ ๋ชจ๋“  ๋ฌธ์ž
var re = /[a-z]|[0-9]/  -- a~z ํ˜น์€ 0~9์‚ฌ์ด์˜ ๋ฌธ์ž
var re = /a|b|c/   --  a ํ˜น์€ b ํ˜น์€ c์ธ ๋ฌธ์ž
var re = /[^a-z]/  -- a~z๊นŒ์ง€์˜ ๋ฌธ์ž๊ฐ€ ์•„๋‹Œ ๋ฌธ์ž("^" ๋ถ€์ •)
var re = /^[a-z]/  -- ๋ฌธ์ž์˜ ์ฒ˜์Œ์ด a~z๋กœ ์‹œ์ž‘๋˜๋Š” ๋ฌธ์žฅ
var re = /[a-z]$/  -- ๋ฌธ์ž๊ฐ€ a~z๋กœ ๋๋‚จ


์ƒ๊ธฐ์— ์ •์˜๋œ ๊ฐ„๋‹จํ•œ ํ‘œํ˜„์‹์„ ์•„๋ž˜์— ๋„ฃ์–ด ์ง์ ‘ ํ•ด ๋ณด์‹œ๊ธฐ ๋ฐ”๋ž๋‹ˆ๋‹ค.
var str = "sample string";
re.test(str)?"true":"false";

* ํŠน์ˆ˜๋ฌธ์ž('''', ''^'', ''$'', ''*'', ''+'', ''?'', ''.'', ''('', '')'', ''|'', ''{'', ''}'', ''['', '']'')๋ฅผ ๊ฒ€์ƒ‰ํ•  ๊ฒฝ์šฐ๋Š” '''' ๋ฅผ ๋„ฃ๋Š”๋‹ค.

 

##############  ๊ฐ„๋‹จํ•œ ์‘์šฉ์˜ˆ์ œ
 
 
var re = /s$/;          -- ๊ณต๋ฐฑ์ฒดํฌ
var re = /^ss*$/;   -- ๊ณต๋ฐฑ๋ฌธ์ž ๊ฐœํ–‰๋ฌธ์ž๋งŒ ์ž…๋ ฅ ๊ฑฐ์ ˆ
var re = /^[-!#$%& amp;'*+./0-9=?A-Z^_a-z{|}~]+@[-!#$%&'*+/0-9=?A-Z^_a-z{|}~]+.[-!#$%& amp;'*+./0-9=?A-Z^_a-z{|}~]+$/; --์ด๋ฉ”์ผ ์ฒดํฌ
var re = /^[A-Za-z0-9]{4,10}$/ -- ๋น„๋ฐ€๋ฒˆํ˜ธ,์•„์ด๋””์ฒดํฌ ์˜๋ฌธ,์ˆซ์ž๋งŒํ—ˆ์šฉ, 4~10์ž๋ฆฌ
var re = new RegExp("(http|https|ftp|telnet|news|irc)://([-/.a-zA-Z0-9_~#%$?&=:200-377()]+)","gi") -- ํ™ˆํŽ˜์ด์ง€ ์ฒดํฌ

var re = "<[^<|>]*>";  -- ํƒœ๊ทธ์ œ๊ฑฐ 
var re = /[<][^>]*[>]/gi;-- ํƒœ๊ทธ์ œ๊ฑฐ 
str = str.replace(RegExpTag,""); 

var RegExpJS = "<script[^>]*>(.*?)</script>";  -- ์Šคํฌ๋ฆฝํŠธ ์ œ๊ฑฐ  
str = str.replace(RegExpJS,""); 

var RegExpCSS = "<style[^>]*>(.*?)";  -- ์Šคํƒ€์ผ ์ œ๊ฑฐ  
str = str.replace(RegExpCSS,""); 

var RegExpHG = "(/[ใ„ฑ-ใ…Ž|ใ…-ใ…ฃ|๊ฐ€-ํžฃ]/)";  -- ํ•œ๊ธ€ ์ œ๊ฑฐ  
str = str.replace(RegExpHG,"");  
 
var RegExpDS = /<!--[^>](.*?)-->/g;   -- ์ฃผ์„ ์ œ๊ฑฐ  
str6 = str.replace(RegExpDS,""); 

var regExp = /[a-z0-9]{2,}@[a-z0-9-]{2,}.[a-z0-9]{2,}/i; --์ด๋ฉ”์ผ ์ฒดํฌ


## ๊ธฐํƒ€ ์‘์šฉ
re = new RegExp("^@[a-zA-Z0-9]+s+","i");//๋ฌธ์žฅ์˜ ์ฒ˜์Œ์ด @์ด๊ณ  ๋ฌธ์ž๊ฐ€ 1๋‚˜ ์ด์ƒ ์žˆ์œผ๋ฉด ok

 

๊ธฐํƒ€ ์ƒ๊ธฐ์™€ ๋™์ผํ•˜๋‚˜ ์•ฝ๊ฐ„์”ฉ ๋‹ค๋ฅธ ์ƒ˜ํ””
์˜์ˆซ์ž ์กฐํ•ฉ์ฑ…ํฌ
if ((new RegExp(/[^a-z|^0-9]/gi)).test(frm.loginid.value)) {
    alert("ID๋Š” ์˜์ˆซ์ž ์กฐํ•ฉ๋งŒ ์‚ฌ์šฉํ•˜์„ธ์š”"); 
    frm.loginid.focus(); 
}

ํ™ˆํŽ˜์ด์ง€ ์ฃผ์†Œ ์ฑ…ํฌ
 function chk(v){
  str='';
  re = new RegExp("^http://","i");  
  re.test(v)?str='y':str='n';
  alert(str);
 }

hanmail์ธ์ง€๋ฅผ ์ฑ…ํฌ
 function chk(v){
  str='';
  re = new RegExp("hanmail.net","i");  
  re.test(v)?str=true:str=false;
  return str
 }

//๋ณธ๋ฌธ๋‚ด์—์„œ ๋„๋ฉ”์ธ ๊ตฌํ•˜๊ธฐ
var patt = /(http(s)?://)?w+(.w+)+/gi;
      var result = (aa.value.match(patt));

//๋ณธ๋ฌธ๋‚ด์—์„œ url๊ตฌํ•˜๊ธฐ
์ƒ๊ธฐ์™€ ์œ ์‚ฌ var patt = /(http(s)?://)?w+(.w+).S*-gi;

########### ์ •๊ทœ์‹ ๋ฉ”์†Œ๋“œ ๋ฐ ์‚ฌ์šฉ๋ฒ•

์ฐธ์กฐ http://eknote.tistory.com/1251
์ฐธ์กฐ http://www.javascriptkit.com/javatutors/redev3.shtml
RegExp.exec(string)
RegExp.test(string)
String.match(pattern)
String.search(pattern)
String.replace(pattern,string)
String.split(pattern)

 

 

 

 

 

 

 

* ํŠน์ˆ˜๋ฌธ์ž ๊ฒ€์ฆ ๋ฐ ์ œ๊ฑฐ

function regExp(){  
 //ํŠน์ˆ˜๋ฌธ์ž ๊ฒ€์ฆ start
 var str = "2011-12-27";
 var regExp = /[\{\}\[\]\/?.,;:|\)*~`!^\-_+<>@\#$%&\\\=\(\'\"]/gi
 if(regExp.test(str)){
  //ํŠน์ˆ˜๋ฌธ์ž ์ œ๊ฑฐ
  var t = str.replace(regExp, "")
  alert("ํŠน์ˆ˜๋ฌธ์ž๋ฅผ ์ œ๊ฑฐํ–ˆ์Šต๋‹ˆ๋‹ค. ==>" + t)
 }else{
  alert("์ •์ƒ์ ์ธ ๋ฌธ์ž์ž…๋‹ˆ๋‹ค. ==>" + str)
 }
 //ํŠน์ˆ˜๋ฌธ์ž ๊ฒ€์ฆ end
}

 

 

* ๋‹‰๋„ค์ž„ ์ฒดํฌ - ํŠน๋ฌธ ์ œ์™ธ 2์ž ~ 20์ž

var pattern = /^[\w\Wใ„ฑ-ใ…Žใ…-ใ…ฃ๊ฐ€-ํžฃ]{2,20}$/;

[\w]๋Š” [A-Za-z0-9_] ์ด๋‹ค
[\W]๋Š” \w๋ฅผ ์ œ์™ธํ•œ ํŠน์ˆ˜๋ฌธ์ž๋“ค์ด๋‹ค.
[ใ„ฑ-ใ…Ž] ์€  ใ„ฑใ„ดใ„ทใ„นใ…ใ…‚ใ……ใ…‡ใ…ˆใ…Šใ…‹ใ…Œใ…ใ…Ž
[ใ…-ใ…ฃ]๋Š” ใ…ใ…‘ใ…“ใ…•ใ…—ใ…›ใ…œใ… ใ…กใ…ฃ
[๊ฐ€-ํžฃ]๋Š” ๊ฐ€๋‚˜๋‹ค๋ผ~~ํƒ€ํŒŒํ•˜ ~ ๊ธฐ๋‹ˆ๋””๋ฆฌ~ ํ‹ฐํ”ผํžˆ ~ ๊ฐ๋‚™๋‹ฅ๋ฝ ~ ํ‹ฑํ”ฝํž‰ ~ ๊น‹๋‹ฃ๋”ฏ๋ง‡ ~ ํŒ‹ํ•—ํžฃ  ์ด ๋œ๋‹ค.


์ฆ‰ ๊ทธ๋ƒฅ ๋ชจ๋“  ๋ฌธ์ž์—ด์— ๋Œ€ํ•œ {2,20} ๊ธ€์ž ์ˆ˜ ์ฒดํฌ๊ฐ€ ๋œ๋‹ค.

 

 

 

****

 

var pattern = ์ •๊ทœ์‹;
var testee = "ํ…Œ์ŠคํŠธ ์ŠคํŠธ๋ง";
var true_or_false = pattern.test( testee);  // ์ •๊ทœ์‹ ํ•„ํ„ฐ๋ฅผ ํ†ต๊ณผํ•˜๋ฉด true, ์•„๋‹ˆ๋ฉด false ๋ฆฌํ„ด.

๋‹ค๋ฅธ ๋ฐฉ๋ฒ•๋“ค๋„ ์žˆ๋Š”๋ฐ ๋‚˜๋Š” ๊ทธ๋ƒฅ ์œ„์™€ ๊ฐ™์ด ์‚ฌ์šฉ์ค‘์ด๋‹ค.
์•„๋ž˜๋Š” ๋‚ด๊ฐ€ ์‚ฌ์šฉํ•˜๋Š” ์ •๊ทœ์‹ ๋ช‡ ๊ฐ€์ง€ ์˜ˆ์ œ..

1) ์ •์ˆ˜์™€ ์†Œ์ˆ˜์  ๋‹ฌ๊ณ ๋‹ค๋‹ˆ๋Š” ์ˆ˜๋“ค๋งŒ ํ†ต๊ณผ์‹œํ‚ค๋Š” ํ•„ํ„ฐ. ์˜ˆ๋ฅผ ๋“ค์–ด '12' '12.123' '-0.571' '-8100' ๋“ฑ์— ๋Œ€ํ•ด true๋ฅผ ๋ฆฌํ„ดํ•˜๊ณ  ๋‚˜๋จธ์ง€๋Š” false ๋ฆฌํ„ด.
 
var pattern =  /^[-]?\d+(?:[.]\d+)?$/;
return pattern.test( testee);

1-2) ์œ„์˜ ํ•„ํ„ฐ์—์„œ ์ข€๋” ์กฐ๊ฑด์„ ์ถ”๊ฐ€ํ•ด์„œ, ์–‘์ˆ˜๋ฉด์„œ ์ตœ๋Œ€ ์†Œ์ˆ˜์  2์ž๋ฆฌ ์ดํ•˜๊นŒ์ง€๋งŒ ํ†ต๊ณผ์‹œํ‚ค๋Š” ํ•„ํ„ฐ. ์˜ˆ๋ฅผ ๋“ค์–ด 12.23, 0.41, 51 ๋“ฑ์—๋Š” true๋ฅผ ๋ฆฌํ„ดํ•˜๊ณ , -12, -9.43, 1.234 ๋“ฑ์—๋Š” false๋ฅผ ๋ฆฌํ„ดํ•˜๋Š” ํ•„ํ„ฐ.
var pattern = /^\d+(?:[.]?[\d]?[\d])?$/;
return pattern.test( testee);

2) ์ˆซ์ž ๋ฐ x, X, P, E ๋งŒ ํฌํ•จํ•œ ์ŠคํŠธ๋ง๋งŒ ํ†ต๊ณผ์‹œํ‚ค๋Š” ํ•„ํ„ฐ. 
์˜ˆ๋ฅผ ๋“ค์–ด, 
x123 : true
XPE : true
125 : true
1234O : false
pXP : false

var pattern = /[^1234567890xXPE]/;
return !(pattern.test( testee));

3) ๋ฌธ์ž ์ „์ฒด์—์„œ ํŠน์ˆ˜๋ฌธ์ž๋ฅผ ํ•˜๋‚˜๋ผ๋„ ํฌํ•จํ•˜์ง€ ์•Š์•„์•ผ๋งŒ ํ•จ
์˜ˆ๋ฅผ ๋“ค์–ด, 
@123 : false
12Hello5 : true
!!! : false

var pattern = /[^\w\s]/i;
return !(pattern.test( testee));

4) ๋‹ค์Œ๊ณผ ๊ฐ™์€ ํ˜•์‹๋งŒ ํ†ต๊ณผํ•จ. Q๋กœ ์‹œ์ž‘ํ•˜๋ฉด์„œ, 0000~9999 ๊นŒ์ง€์˜ ์ˆซ์ž๋งŒ Q ๋’ค์— ๋‹ฌ๊ณ  ์žˆ์–ด์•ผ ํ•จ. 
์ฆ‰, 
Q0001, Q0002, Q1234, Q9999  : true
Q00, Q194, Q1  : false
Q0001A  : false
QUESTION : false

var pattern = /^Q[0-9][0-9][0-9][0-9]$/;
return pattern.test( testee);


5) ์ •๊ทœ์‹์—์„œ g ํ”Œ๋ž˜๊ทธ๋ฅผ ์“ธ ๋•Œ ์ฃผ์˜ํ•ด์•ผ ํ•œ๋‹ค. ์ตœ๊ทผ์— ๋งค์นญํ•œ ๊ณณ์—์„œ๋ถ€ํ„ฐ ๋‹ค์‹œ ์ •๊ทœ์‹ ๊ฒ€์‚ฌ๋ฅผ ์‹œ์ž‘ํ•˜๋Š” ์†์„ฑ์ด ์žˆ๋‹ค.

์ด๊ฒƒ๋•Œ๋ฌธ์— ๋‹ค์Œ ๋ฌธ์ œ๊ฐ€ ์ผ์–ด๋‚œ๋‹ค. ์—ฐ์†์ ์œผ๋กœ ํ•œ ์ŠคํŠธ๋ง์— ๋Œ€ํ•ด ์ •๊ทœ์‹ ํ…Œ์ŠคํŒ…์„ ํ•˜๋ฉด, ์ฒ˜์Œ์—๋Š” ํ•„ํ„ฐ๊ฐ€ ์ž˜ ๋™์ž‘ํ•˜๋‹ค๊ฐ€ ๋‚˜์ค‘์—๋Š” ํ†ต๊ณผํ•˜์ง€ ๋ง์•„์•ผ ํ•  ์กฐ๊ฑด์„ ๊ฐ€์ง„ ์ŠคํŠธ๋ง์ด ์ •๊ทœ์‹ ํŒจํ„ด์„ ํ†ต๊ณผํ–ˆ๋‹ค๊ณ  ๋‚˜์˜ค๊ฒŒ ๋œ๋‹ค. ๊ตฌ๊ธ€์—์„œ 'regex g flag consecutive' ๋“ฑ์œผ๋กœ ๊ฒ€์ƒ‰ํ•˜๋ฉด ์ด ๋ฌธ์ œ๋กœ ๋งค์šฐ ๋งŽ์€ ์งˆ๋ฌธ๊ณผ ๋‹ต์ด ๋‚˜์˜จ๋‹ค. ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์€.. ๋‚œ g ํ”Œ๋ž˜๊ทธ ๋Œ€์‹  i ํ”Œ๋ž˜๊ทธ๋ฅผ ์ค˜์„œ ํ•ด๊ฒฐํ–ˆ๋‹ค. ์•„๋ž˜ ๋งํฌ๋„ ๋„์›€์ด ๋  ๊ฒƒ์ด๋‹ค.

http://stackoverflow.com/questions/15610251/why-pattern-testname-opposite-results-on-consecutive-calls
http://stackoverflow.com/questions/6739136/consecutive-calls-to-regexp-test-fail-for-pattern-with-global-option


6) ๋ฌธ์ž์—ด ์–‘ ๋์— ๊ณต๋ฐฑ๋ฌธ์ž๋ฅผ ์—†์•  ์ฃผ๋Š” ์ •๊ทœ์‹. ์˜ˆ๋ฅผ ๋“ค์–ด "   hi hello! "; ๋ฅผ "hi hello!"; ๋กœ ๋ฐ”๊ฟ” ์ฃผ๋Š” ์ฝ”๋“œ.
(์ถœ์ฒ˜ : http://stackoverflow.com/questions/3000649/trim-spaces-from-start-and-end-of-string)

function trim_whitespace( str) 
{
    return str.replace(/^\s\s*/, '').replace(/\s\s*$/, '');
}


7) "[192.244.1.123]" ๊ฐ™์€ string์—์„œ ์•ˆ์˜ ip๋ถ€๋ถ„๋งŒ ๋นผ๋‚ธ๋‹ค("192.244.1.123" ์„ ๋นผ๋‚ด๋Š” ์ž‘์—…)
function main()
{
    var regex = /\[([.\d]+)]/;
    var str = "[192.244.1.123]";
    var res = regex.exec( str);
    
    // print res[1] = "192.244.1.123";
}

 

profile on loading

Loading...