본문 바로가기

Local Oriented/HTML CSS JS

쓸만한 표현식

 

http://olpost.com/r/4951585 숫자와 수치

 

function isDigit(s){ return /^[-+]?\d+$/.test(v); } +/- 수치를 체크. 산식은 불허.

 
.replaceAll("[^0-9|a-z|A-Z]","") 0 에서 9 까지, a 에서 z 까지, A 에서 Z 까지만 남기고 다른 문자는 없애는 표현식

 


const url = /(\w+):\/\/([\w.]+)\/(\S*)/g; // http 든 https 든 체크. ? 이후 쿼리 스트링도 체크

(와 )로 묶이는 내용은, 괄호 안에 기술된 순서대로 하나의 그룹 취급. 사실 상기 url 패턴에서 ( 와 ) 는 삭제해도 동일 작동

[와 ]로 묶이는 내용은, 괄호 안에 기술된 각각의 요소가 하나라도 있으면 ok

\w 는, [a-zA-Z0-9_] 와 동일

\w+ 는, \w 가 1회 또는 여러번 반복 ok . http 나 https 모두 ok

(\w+) 는, 다른 패턴에 우선해서 고려하라는 표시. 다른 내용과 섞여서 모호하게 해석될까봐 구분하기 위해 추가한 괄호

\/ 는, '/' 문자. :\/\/ 로 했으니 '://' 를 체크하는 것. 가독성을 위해 (:\/\/) 로 했어도 됨

[\w.] 는, \w 나 . 둘 중 하나가 있으면 ok. (\w.) 는 순서가 정해져서 \w 문자 뒤에 . 문자가 있어야 함.

[\w.]+ 는, \w 나 . 둘 다 되고  1회 또는 여러번 반복 ok . www.naver.com 체크됨

([\w.]+) 는, 괄호가 없어도 되지만, 내용이 길어지니까 구분을 두기 위해서 사용

\S 는, '유니코드 공백 문자' 를 제외한 모든 문자. URL 에는 ~ 나 ?, = 등이 사용되므로 \w 로는 부족

\S* 는, 되도록 많은 문자가 0회 이상 반복 ok

/.../g 는, 작업 대상 전체에 대해 체크하라는거.

만약 '....'.match(url) 이면 배열 구조의 첫번째 값에, URL 이 추출.

/.../g 에서 g 가 없으면.. match() 로 리턴되는 값은, 0번째에 g 가 있을 때의 값, 그 외에는 직접 해 보시길..