Javascript拆分正则表达式问题

Cra*_*aig 100 javascript regex split

你好,我正在尝试我认为在Javascript中相当容易的正则表达式,但给我很多麻烦.我希望能够通过javascript分割日期来分割日期,分别是' - ','.','/'和''.

var date = "02-25-2010";
var myregexp2 = new RegExp("-."); 
dateArray = date.split(myregexp2);
Run Code Online (Sandbox Code Playgroud)

什么是正确的正则表达式任何和所有的帮助将是伟大的.

Dan*_*uis 153

你需要在字符类中放置你想要分割的字符,它告诉正则表达式引擎"这些字符中的任何一个都匹配".为了您的目的,这将看起来像:

date.split(/[.,\/ -]/)
Run Code Online (Sandbox Code Playgroud)

虽然破折号在字符类中作为范围说明符具有特殊含义(即[a-z]表示相同[abcdefghijklmnopqrstuvwxyz]),但如果将其作为类中的最后一项,则将其视为文字破折号并且不需要进行转义.

要解释为什么您的模式不起作用,请/-./告诉正则表达式引擎匹配文字短划线字符后跟任何字符(是正则表达式中的通配符).对于"02-25-2010",每次遇到"-2"时它会分开,因为短划线匹配且点匹配"2".

  • 你还可以提到一个点*在字符类中没有任何特殊含义 - 而不是充当通配符(这没有任何意义),它充当文字. (3认同)

小智 9

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

date.split(/\D/);
Run Code Online (Sandbox Code Playgroud)


All*_*uin 6

你可以使用

date.split(/-/);
Run Code Online (Sandbox Code Playgroud)

要么

date.split('-');
Run Code Online (Sandbox Code Playgroud)

  • 在您的代码之前放置一个换行符,这 4 个空格将正确格式化。 (2认同)

use*_*ess 5

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

date.split(/[^0-9]/);
Run Code Online (Sandbox Code Playgroud)


小智 5

说你的字符串是:

let str = `word1
word2;word3,word4,word5;word7
word8,word9;word10`;
Run Code Online (Sandbox Code Playgroud)

您希望通过以下分隔符拆分字符串:

  • 冒号
  • 分号
  • 新队

您可以像这样拆分字符串:

let rawElements = str.split(new RegExp('[,;\n]', 'g'));
Run Code Online (Sandbox Code Playgroud)

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

let elements = rawElements.map(element => element.trim());
Run Code Online (Sandbox Code Playgroud)