JavaScript分割正则expression式的问题

你好我正在尝试什么,我认为会是一个相当简单的正则expression式在Javascript中,但给我很多麻烦。 我希望能够通过使用' – ','。','/'和''来分割date。

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

什么是正确的正则expression式任何和所有的帮助将是伟大的。

你需要把你想要分割的字符放在一个字符类中 ,告诉正则expression式引擎“这些字符中的任何一个匹配”。 为了您的目的,这将看起来像:

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

尽pipe破折号在字符类中作为范围说明符(即[az]含义与[abcdefghijklmnopqrstuvwxyz] [az]含义相同)具有特殊的含义,但如果将其作为类中的最后一件事物,则意味着字面破折号,而不需要逃脱。

为了解释为什么你的模式不起作用,/- /-./告诉正则expression式引擎匹配一个文字短划线字符后跟任何字符( 点是正则expression式中的通配符)。 用“02-25-2010”,每次遇到“-2”,因为破折号匹配,点匹配“2”。

或者只是(除了数字以外):

 date.split(/\D/); 

你可以使用

 date.split(/-/); 

要么

 date.split('-'); 

然后把它分成几个数字:

 date.split(/[^0-9]/); 

或者只是使用datestring2015-05-20或2015.05.20

 date.split(/\.|-/);