回答:
分割する文字を文字クラスに配置する必要があります。これにより、正規表現エンジンに「これらの文字のいずれかが一致する」ことが通知されます。あなたの目的のために、これは次のようになります:
date.split(/[.,\/ -]/)
ダッシュは文字クラスで範囲指定子として特別な意味を持っていますが(つまり[a-z]
、と同じ意味[abcdefghijklmnopqrstuvwxyz]
です)、ダッシュをクラスの最後に置くと、リテラルダッシュを意味すると見なされ、エスケープする必要はありません。
パターンが機能しなかった理由を説明するために/-./
、正規表現エンジンに、任意の文字が続くリテラルダッシュ文字に一致するように指示します(ドットは正規表現ではワイルドカード文字です)。「02-25-2010」では、ダッシュが一致し、ドットが「2」に一致するため、「-2」が検出されるたびに分割されます。
または単に日付文字列2015-05-20または2015.05.20に使用します
date.split(/\.|-/);