일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- HTML
- 크롬웹
- WEB2-JavaScript
- 나도코딩
- max-width
- 나도코딩 파이썬
- 생활코딩 WEB2-JavaScript
- :root
- 단계별로 풀어보기
- li 태그
- error: ENOENT: no such file or directory
- border radius
- calc()
- 드림코딩
- 할만한데?
- 생활코딩
- nav태그
- Pull
- html 끝
- 노마드 코더
- margin 0 auto
- 코딩테스트
- 백준 자바스크립트
- git 버전관리
- 라매개발자
- git
- 백준 정리
- 백준
- box-sizing: border-box
- button:focus cursor: pointer; outline: none;
- Today
- Total
코딩응애의 개발블로그
코플릿 풀면서 알게된 점 (정규식과 replaceAll() & /[^0-9]/g) 본문
코플릿 문제 조건에서 문자열중 숫자만 모두 찾아 더하는 조건이 있었는데 뭔가 다른 편한 방법이 있지 않을까? 해서
구글에 검색을 해보았는데 정규식과 replace()를 이용해서 구하는 방법이 있었다.
예전에 replace 이용해서 문제 푸는것도 정규식을 이용을 했었는데 언제 한번 날잡고 공부해 봐야 겠다
그리고 추가로 이거 정리하면서 알아낸게 js에는 replaceAll() 이라는 메소드가 없는줄 알았는데 최근에 새로 생겼다고 한다
작년 그러니까 2021년이 되서야 ES2021(ES12) 표준 명세에 전역 문자열 바꾸기 메서드인 replaceAll() 이 추가되었습니다.
라고한다.
근데 최근도 아닌 1년전임; 저번에 찾을때는 다 정규식과 replace 이용해서 풀어서 없는줄 알았는데... 뭐 둘다 알면 좋지
어쨋든 이게 중요한게 아니라 문자열중 숫자만 출력하는법에 대해 말해보자면
let regex = /[^0-9]/g;
let result = str.replace(regex, "");
이렇게 하면 regex가 숫자가 아닌 문자를 모두 선택하고 replace를 사용해서 숫자가 아닌 모든 문자를 지워준다.
근데 /[^0-9]/g 이게 정확히 뭔데? 0-9니까 숫자 출력하는거 아님? 이라고 생각할수 있지만 아니다.
일단 정규식 형식인 / 사이에 [0-9]가 모든 숫자를 매칭한다는 의미이지만 앞에 ^ 이게 붙으면 부정을 뜻함
즉 [^0-9] 는 모든 숫자를 제외한 문자를 매칭한다는 의미가 됨 마지막에 g 발생할 모든 패턴에 대한 전체 검색을 뜻함
g는 replace 할때 정리 했었음 (사실 까먹음)
출처 : https://jsikim1.tistory.com/38
이렇게 하면 숫자만 출력되는걸 볼 수 있는데 또 문제가 하나 생긴다 이제는 문자열(문자와 공백과 숫자가 섞인)에서
공백과 숫자를 제외한 나머지 문자열을 출력해야 하는데 여기서 많이 고민했다.
일단 공백은 없앨수 있는데 숫자를 없애는 방법을 몰라서 구글링을 했는데 그래도 답이 안나오다가 겨우 발견함
let regex2 = /[^a-z]/gi; // 문자만 출력
let result2 = str.replace(regex2, "");
let str = 'Hello6 9World 2, Nic8e D7ay!';
let regex2 = /[^a-z]/gi;
let result2 = str.replace(regex2, "");
console.log(result2) // HelloWorldNiceDay 출력
따로 공백을 제거하거나 할필요없이 이렇게 출력이 된다.
'코드스테이츠(부트캠프)' 카테고리의 다른 글
코드스테이츠 Section 2 회고 (0) | 2022.08.18 |
---|---|
리액트 SPA 라우터 (0) | 2022.08.18 |
코플릿 문제 풀면서 알게된 것들 - 바빌로니아 법 (제곱근) (0) | 2022.08.13 |
코드스테이츠 블로깅 - (REST API) + 생활코딩 (REST API) (0) | 2022.08.05 |
코플릿 문제 풀면서 알게된 것들 - 배열안에 특정 값 제거 (0) | 2022.08.04 |