[개발] javascript 에서 정규식을 활용한 replace 사용

안녕하세요 @realmankwon입니다.

replace 함수는 어떤 언어에서든 자주 사용하는 언어입니다.
그런데 오늘 javascript에서는 다르게 동작한다는 것을 알게되었네요.
보통 다른 언어에서는 replace를 사용하게 되는 string에서 해당되는 문자 전체를 변경시켜주는데 javascript는 처음 발견되는 문자만 변경을 해주는 것입니다.

만약 '[' 문자를 '\['로 바꿀려고 할때 '['가 3번 나오면 3번을 써줘야 한다는 것인데 db에서 가지고 왔을때 몇 번이 있는지 세어서 반복문을 쓴다는 것은 너무 삽질 아닌가요...
결국은 정규식을 사용하게 되었습니다.

저는 paarsing 때문에 특수문자 앞에 \ 를 붙여야 되었기에 아래야 같이 처리를 하였습니다.

    .replace(/\~/g, "\\~")
    .replace(/\-/g, "\\-")
    .replace(/\./g, "\\.")
    .replace(/\_/g, "\\_")
    .replace(/\*/g, "\\*")
    .replace(/\[/g, "\\[")
    .replace(/\]/g, "\\]")
    .replace(/\`/g, "\\`")
    .replace(/\(/g, "\\(")
    .replace(/\)/g, "\\)")

일반적으로 패턴을 / 으로 감싼 후 g를 붙이면 되는데 특수문자의 경우에는 \를 붙여주어야 합니다.
암튼 또 새로운 것을 알게 되었네요 ㅎ
앞으로 잘 활용해야겠습니다.

Sort:  

Upvoted! Thank you for supporting witness @jswit.
default.jpg

@realmankwon transfered 20.000 KRWP to @krwp.burn. voting percent : 100.00%, voting power : 21.48%, steem power : 2016965.90, STU KRW : 1200.
@realmankwon staking status : 16374.843 KRWP
@realmankwon limit for KRWP voting service : 16.374 KRWP (rate : 0.001)
What you sent : 20.000 KRWP (Voting Percent over 100 %)
Refund balance : 16.997 KRWP [66694052 - 2d21db5eef092cbe1741a1d74f29da8f4251768e]

Coin Marketplace

STEEM 0.31
TRX 0.11
JST 0.033
BTC 64550.89
ETH 3156.32
USDT 1.00
SBD 4.30