Javascript 分割正则表达式问题

你好,我正在尝试什么,我认为会是一个相当容易的正则表达式在 Javascript,但是给我很多麻烦。 我希望能够通过 javascript 将日期分割为“-”、“ .”、“/”和“”。

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

什么是正则表达式对此任何和所有的帮助将是巨大的。

238218 次浏览

您需要在 性格类中输入希望分割的字符,它告诉正则表达式引擎“这些字符中的任何一个都是匹配的”。对于你的目的,这看起来像:

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

虽然破折号作为范围说明符在字符类中有特殊的意义(即 [a-z]的意思与 [abcdefghijklmnopqrstuvwxyz]相同) ,但如果你把它作为类中的最后一个东西,它被认为是一个字面破折号,不需要转义。

为了解释为什么您的模式不能工作,/-./告诉正则表达式引擎匹配一个字面破折号字符后跟任何字符(圆点是正则表达式中的通配符)。对于“02-25-2010”,每次遇到“-2”时,它都会分裂,因为破折号匹配,点匹配“2”。

你可以直接用

date.split(/-/);

或者

date.split('-');

然后把它分成除了数字以外的任何东西:

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

或者只是(除了数字以外的任何东西) :

date.split(/\D/);

或仅用于日期字符串2015.05.20或2015.05.20

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

假设你的绳子是:

let str = `word1
word2;word3,word4,word5;word7
word8,word9;word10`;

要用下列分隔符分隔字符串:

  • 结肠
  • 分号
  • 新台词

你可以像这样把字符串分开:

let rawElements = str.split(new RegExp('[,;\n]', 'g'));

最后,您可能需要修剪数组中的元素:

let elements = rawElements.map(element => element.trim());

试试这个

Split (/W +/)