728x90

 

 

정규표현식(RegularExpression)

정의

내가 사용하고자하는 원하는 패턴에 맞는 값을 확인하는 것

유효한 식인지 적당한 값인지 확인하는 패턴

특정 패턴의 문자열을 찾기위한 표현방식

 

 

자주 쓰는 사용처

회원가입

id,pw등 값을 쓴다고 했을 때

아이디를 1을 넣었을 때 5-20자 영문특문만 가능

이미 사용 중이거나 탈퇴한 아이디

쓸 수 없는 기호 걸러줌

  • 쓸 수 있는 아이디와 없는 아이디 걸러주는 역할
  • 표현식을 만들어서, 유효한 식인지 적당한 값인지 만들어보는 것

 


 

정규표현식의 객체 생성

방법1 : new 연산자 사용

방법2 : 스크립트 작성

 

방법1 : new 연산자 사용

var regExp = new RegExp('script');  // 정규식 객체 생성 : ' '
var regExp = new RegExp(/script/);  // 정규식 객체 생성 : / /

 

방법2 : 스크립트 작성

정규식 생성하겠다 의미 내포한 변수 생성

new와 소괄호 없이 정규식 객체 생성

var regExp =  /script/;

 

단순 변수 생성한 것

위에서 정규식의 객체를 생성한 / /랑 다르다

var regExp =  'script';  // 그냥 변수 생성 // 위의 / /랑 다른 슬래시

 

 

 

정규표현식에서 자주사용하는 메소드

test()

해당글자가 존재하면 true 존재하지 않으면 false

console.log(regExp.test(str));  // true

 

exec()

존재여부확인, 해당글자가 없으면 null 있으면 정보배열(index,input)반환

console.log(regExp.exec(str));  // ['script', index: 4, input: 'javascript jquery ajax', groups: undefined]
                                //  <- 해당글자가 있어서 정보배열반환

index랑 input 반환하는 기준 비교하고자하는 값이 스크립트 몇번째에서 나타나냐? 01234에서부터 나타나는 script

index = index번째

input = 어디에서

 

 


 

 

String의 메소드

정규표현식 외에도 str에서 많이 쓰는 메소드로도 비교함

정규표현식 메소드가 있으니까 정규표현식 메소드만 쓰기 보다 다양하게 활용가능하다

 

match()

== exec() 결과가 exec와 같음. str의 메소드도 충분히 활용 가능

console.log(str.match(regExp));

 

str.replace()

해당글자를 지정한문자로 바꿔줌

console.log(str.replace(regExp,'스크립트'));

 

 

728x90
반응형

+ Recent posts