๋ชจ๋ ๊ณต๋ฐฑ ์ฒดํฌ ์ ๊ท์
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";
}
'...' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Oracle] ์กฐํ ์๋ฒ ๋งค๊ธฐ๊ธฐ ROW_NUMBER() (0) | 2021.01.26 |
---|---|
[CA] ๋๊ธฐ(Blocking)์ ๋น๋๊ธฐ(Non-Blocking) (2) | 2021.01.24 |
[JS] ์ ์ด์ฟผ๋ฆฌ id, class, name ์์ฑ ๊ฐ ๊ฐ์ ธ์ค๊ธฐ (0) | 2021.01.21 |
[Js] ์๋ฐ์คํฌ๋ฆฝํธ ํ๊ธ, ์์ด, ์ซ์ ์ฒดํฌํ๊ธฐ (0) | 2021.01.21 |
[Spring] ApplicationContext์ WebApplicationContext (0) | 2021.01.20 |