2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

replaceAll()がJSに実装されてたのに、自分のバージョンが上がってなかったことに気付いた話

Last updated at Posted at 2021-06-10

はじめに

JavaだとreplaceAllがあったので、特に困ったことがなかったですが
JavaScriptにはなかったので、文字列内で該当する全てを置換する際、ヒトクセ必要でした。

最近になってES12でreplaceAll()が使える様になったことを知ったので試してみました。
初投稿なので、優しくしてください。

とりあえず、私の環境(Mac:Chrome, FireFox, Safari どれもさっき更新しました。 と Node.js v15.14.0)は元気に↓動いてます。

やってみた。

古の技術


let str = 'いっぱい置換しろ〜〜〜なんとしても置換しろ〜〜〜頑張って置換しろ〜〜〜';
str = str.split('しろ〜〜〜').join('してくれてありがと♪♪♪');

console.log(str);
 => いっぱい置換してくれてありがと♪♪♪なんとしても置換してくれてありがと♪♪♪頑張って置換してくれてありがと♪♪♪

lodashで同じこと書いてみる。


let str = 'いっぱい置換しろ〜〜〜なんとしても置換しろ〜〜〜頑張って置換しろ〜〜〜';
str = _.join(_.split(str, 'しろ〜〜〜'),'してくれてありがと♪♪♪')

console.log(str);
 => いっぱい置換してくれてありがと♪♪♪なんとしても置換してくれてありがと♪♪♪頑張って置換してくれてありがと♪♪♪

ES12


let str = 'いっぱい置換しろ〜〜〜なんとしても置換しろ〜〜〜頑張って置換しろ〜〜〜';
str = str.replaceAll('しろ〜〜〜', 'してくれてありがと♪♪♪');

console.log(str);
 => いっぱい置換してくれてありがと♪♪♪なんとしても置換してくれてありがと♪♪♪頑張って置換してくれてありがと♪♪♪

正規表現もいける口(どうせ中身は呪文なので一切使わない。)


let str = 'いっぱい置換しろ〜〜〜なんとしても置換しろ〜〜〜頑張って置換しろ〜〜〜';
str = str.replaceAll(/しろ〜〜〜/g, 'してくれてありがと♪♪♪');

console.log(str);
 => いっぱい置換してくれてありがと♪♪♪なんとしても置換してくれてありがと♪♪♪頑張って置換してくれてありがと♪♪♪

いつも通りIEは置き去りの様でした。

おしまい

ちなみに「え?いつから?」ってなったので、こちらのページにリンクを貼ったGitHubのドキュメント更新履歴追いました。
結果ボリュームが多かったので、そんな細かいことは気にしたら負けだな。という結論に至ってます。

とても小さなことですがsplit + joinで、えっとコレで分けて繋げて・・・
ってコードからreplaceAllで、あ〜全置換ね。と言葉として直感的に理解しやすくなるんじゃないかと思います。

ただ、フロントエンドで上記の様な文字列操作を行うことは個人的にはあまり好きではないので
できればバックエンドに実装したいです。 ^ ^

追記 6/13

@ij9tf様よりコメントをいただきましたので、修正しました。
御覧の通り私は正規表現が苦手です。

2
1
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?