Javascript拆分正则表达式问题

IT技术 javascript regex split
2021-02-27 02:02:56

你好,我正在尝试我认为在 Javascript 中相当简单的正则表达式,但给我带来了很多麻烦。我希望能够通过 javascript 将日期拆分为 '-'、'.'、'/' 和 ' '。

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

什么是正确的正则表达式,任何和所有帮助都会很棒。

6个回答

您需要将您希望拆分的字符放入字符类,它告诉正则表达式引擎“这些字符中的任何一个都是匹配的”。出于您的目的,这看起来像:

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

尽管破折号在字符类中作为范围说明符具有特殊含义(即[a-z]与 相同[abcdefghijklmnopqrstuvwxyz]),但如果您将其作为类中的最后一项,则它被视为文字破折号并且不需要转义。

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

您还可以提到点在字符类中没有任何特殊含义 - 而不是充当通配符(这没有任何意义),而是充当文字。
2021-04-18 02:02:56

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

date.split(/\D/);

你可以用

date.split(/-/);

或者

date.split('-');
在您的代码之前放置一个换行符,这 4 个空格将正确格式化。
2021-04-30 02:02:56

然后将其拆分为除数字以外的任何内容:

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

说你的字符串是:

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());
为什么是g标志?
2021-05-14 02:02:56