정규식을 만들어보기 이전에 제일 기본적인 표현을 살펴보자.
정규식은 / 사이에 적는다.
/여기에적힌단어가정규식/
g는 global로 g가없으면 하나만 선택된다.
g가 있으면 해당하는 모든 항목이 선택된다.
예를 들어,
/#/g
라고하면 모든 #이 선택된다.
/#./g
#다음 한 글자까지 포함.
하지만 해시태그가 몇 글자로 이루어져있는지 알수 없다.
/#.+/g
# 이후의 모든 글자 선택
정규식의 대괄호 안에 있는 글자들은 그 글자만 포함한다는 뜻.
/#[해첫익]/g
은 # 바로다음 '해, 첫, 익'이 오는 글자만 선택.
^은 그 글자들을 제외한 다른 글자만 포함한다.
/#[^해첫익]/g
해, 첫, 익 이외의 다른 단어만 포함된다.
/#[^두익해]+/
이렇게 사용하면
# + (두, 익, 해 제외) + 그 이후단어
까지해서 위 화면처럼 선택된다.
해쉬태그는 띄어쓰기로 구분하므로
띄어쓰기가 있는 부분까지 선택하도록 만들어보자.
정규식으로 띄어쓰기는 \s 이다.
/#[^\s]+/
이렇게 사용하면 #부터 띄어쓰기가 있는 부분까지 선택된다.
하지만 #첫번째#두번째 처럼 해시태그사이에 띄워쓰기가 되어있지 않은 경우
따로따로 선택하도록 만들어야한다.
그러기위해서 #태그도 제외시켜준다.
/#[^\s#]+/g
이렇게 사용하면 해시태그한 단어들을 모두 선택한다.
괄호없이 splite하면 해시태그부분은 제거되고 반환한다.
그러므로 괄호를 사용하여 다음과 같이 표시해야한다.
.split(/(정규식)/g)
이 사이트에 들어가면 정규식을 테스트해 볼 수 있다.
JavaScript :: 제너레이터 (0) | 2020.12.15 |
---|---|
JavaScript :: 웹에 사진올리고 썸네일이미지 보이게(web APIs) (0) | 2020.11.26 |
Array.indexOf() (0) | 2020.11.12 |
js로 리스트 작성하기 (0) | 2020.10.15 |
JavaScript :: Promise API (all, race, allSettled) (0) | 2020.10.14 |
댓글 영역