JAVA를 JAVA라

[Javascript] replace(/'바꿀 문자열'/gi,'바뀔 문자열'), 전체 문자열 바꾸기 본문

JAVA/열일하는 블로그

[Javascript] replace(/'바꿀 문자열'/gi,'바뀔 문자열'), 전체 문자열 바꾸기

샛별KIM 2022. 1. 5. 10:54
var text = 'aaaabbbbcccc';

var regexForB = /b/gi;     // b 문자 전체
var regexForC = /c/gi;     // c 문자 전체

text
  .replace(regexForB, 'a') // aaaaaaaacccc
  .replace(regexForC, 'a') // aaaaaaaaaaaa

// 출처 : https://deeplify.dev/front-end/js/replace-and-replace-all

g는 글로벌, 모든 문자열을 뜻하며

i는 대소문자 구분 없이 replace 하겠다는 뜻이다.

 

참고)

 

정규 표현식 - JavaScript | MDN

정규 표현식은 문자열에 나타는 특정 문자 조합과 대응시키기 위해 사용되는 패턴입니다. 자바스크립트에서, 정규 표현식 또한 객체입니다.  이 패턴들은 RegExp의 exec 메소드와 test 메소드  ,

developer.mozilla.org

 

추가)

var pn = '010-1234-5678';
pn.replace(/[\+][0-9]{2}[ ]/,'0');

/ / 안에 있는 부분을 하나하나 뜯어보자면 먼저

 

1. [\+] 에서 \는 +가 정규식에서 쓰이는 특수 패턴일 경우

그 특수패턴으로 읽지 않고 '+'라는 문자 자체로 보겠다는 것을 의미한다.

 

예를 들어 /a*/ 에서의 특수문자 '*'는 0개 이상의 'a' 문자가 등장함을 나타낸다.

그러나 이런 특수한 패턴을 읽지 않고 'a*'라는 문자 자체를 찾기 위해서는

* 앞에 \를 적어주어 특수패턴이 아닌 문자 자체라는 것을 나타내줄 수 있다.

 

 

2. [0-9] 는 0에서부터 9까지의 숫자를 의미한다. (0, 1, 2, 3, ..., 9)

 

 

3. {2}는 앞의 문자가 2번 나타나는 부분에 대응된다.

예를 들어, /a{2}/는 "candy,"의 'a'에는 대응되지 않지만, "caandy,"의 모든 a 와, "caaandy."의 첫 두 a 에는 대응된다.

 

4. [ ]는 빈칸이다.

 

예측하건데 아마 +82 등 국가코드가 붙어있는 경우 +82 10-1234-5678 과 같이 표시되는데, 이를

010-1234-5678로 바꾸기 위한 replace 구문이 아닐까 생각된다.

Comments