1. ホーム
  2. javascript

[解決済み] Javascriptのsplit regexに関する質問

2022-03-05 09:58:31

質問内容

Javascriptで簡単な正規表現に挑戦しているのですが、問題が多発しています。 Javascriptで日付を分割する機能が欲しいのですが、'-'、'.'、'/'、'.'のいずれかで分割します。

var date = "02-25-2010";
var myregexp2 = new RegExp("-."); 
dateArray = date.split(myregexp2);

正しい正規表現を教えてください。

どのように解決するのですか?

分割したい文字を 文字クラス これは正規表現エンジンに "これらの文字のどれかがマッチすることを伝えます"。これは、正規表現エンジンに "これらの文字のいずれかが一致します"と伝えるものです。

date.split(/[.,\/ -]/)

ダッシュは、文字クラスでは範囲指定子として特別な意味を持ちますが(例えば [a-z] と同じ意味です。 [abcdefghijklmnopqrstuvwxyz] をクラスの最後に置くと、文字通りのダッシュを意味するものとみなされ、エスケープする必要はありません)。

あなたのパターンがなぜうまくいかなかったのかを説明する。 /-./ は、ダッシュ文字とその後に続く任意の文字 ( ドット は正規表現におけるワイルドカード文字です)。ダッシュがマッチし、ドットが"2"にマッチするため、"-2"に遭遇するたびに分割されることになります。