ID非公開

2021/11/20 22:51

33回答

jsの正規表現がややこしくて手こずっています。スラッシュの前にスラッシュを置く置換の、 str.replace(/[\/\\\|]/g,"\\$&")

JavaScript102閲覧

ベストアンサー

0

ThanksImg質問者からのお礼コメント

ありがとうございます

お礼日時:2021/11/24 13:59

その他の回答(2件)

1

/ \ | のいずれかの文字を \ 付に置換します。 / → \/ \ → \\ | → \| [] これで囲まれた場合はそれら文字とマッチ。 / などはエスケープする必要があるから \\ とか \/ とか書かなくちゃいけません。 そういうものだと覚えておけば OK $& はマッチした全体を意味します。 今回は [] で 1 文字としかマッチしませんので、$& の意味は 1 文字と言うことになります。 g は繰り返すという意味。

1人がナイス!しています

2

エスケープ文字「\」が沢山あるだけでそれほど難しいものではありません。 「JavaScript 特殊文字 エスケープ」で検索してエスケープ文字の意味を知れば理解できると思います。 エスケープシーケンスは正規表現に限ったものではありません。 対象の文字をエスケープの必要がない文字に変えて書くと str.replace(/[ABC]/g,"/$&") です。 この場合は 「A」「B」「C」を「/A」「/B」「/C」に置換。 「$&」はマッチした文字列です。 このレベルの正規表現は基本なので説明はこのくらいで。

2人がナイス!しています

ID非公開

質問者2021/11/20 23:58

まじでありがとうございます!神です!