LoginSignup
0
0

More than 1 year has passed since last update.

正規表現が開発者ツールでは動くのに、サーバーサイドではInvalid quantifier ?ってエラーが発生

Last updated at Posted at 2021-09-02

忘れて調べそうなので、メモ程度に書きます。
私は頭が悪いので、正規表現もググって感覚で使っています。
変な書き方していたらごめんなさい。

エラーの内容

SyntaxError: Invalid quantifier ?
ってエラーが出ました。

使ったコード

let a = "2021/09/08 11:00:00";
console.log(a.replace(/\/|(?<= ).*$/g, ""));
// 実行結果: 20210908 

スペース以降と/を削除する処理になっています。
開発者ツールとか使うとエラーは出なかったです。
でも、私の使っている環境だと動かない。

原因

私の使用しているJavaScriptの環境がES5?だったのが原因でした。
(?<= )このところがダメっぽいです。
これは後読みって処理をするらしいんですけど、後読みはES2018から対応しているらしいです。
なので、ES2018以前の環境では別の方法を考えないとダメっぽいですね。

修正後

let a = "2021/09/08 11:00:00";
console.log(a.replace(/\/| .*$/g, ""));
// 実行結果: 20210908

一応できました。今気づいたんですけど、修正前のコードだとスペースが入っちゃってますね。

0
0
0

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
0
0