大家好,我正在尝试使用Javascript实现一个看似简单的正则表达式,但是却给我带来了很多麻烦。我想通过JavaScript将日期按照'-', '.', '/',和空格进行分割。
var date = "02-25-2010";
var myregexp2 = new RegExp("-.");
dateArray = date.split(myregexp2);
这个问题需要正确的正则表达式,希望能得到任何和所有的帮助。
大家好,我正在尝试使用Javascript实现一个看似简单的正则表达式,但是却给我带来了很多麻烦。我想通过JavaScript将日期按照'-', '.', '/',和空格进行分割。
var date = "02-25-2010";
var myregexp2 = new RegExp("-.");
dateArray = date.split(myregexp2);
这个问题需要正确的正则表达式,希望能得到任何和所有的帮助。
你需要把你想要分割的字符放在一个字符类中,这会告诉正则表达式引擎“任何这些字符都是匹配项”。对于你的目的而言,代码应该如下所示:
date.split(/[.,\/ -]/)
虽然破折号在字符类中具有特殊含义,表示范围(例如[a-z]
与 [abcdefghijklmnopqrstuvwxyz]
相同),但如果将其放置在类的最后,则视为字面意义的破折号,无需进行转义。
为了解释为什么您的模式不起作用,/-./
表示正则表达式引擎匹配一个字面意义的破折号字符后跟任意字符(点是正则表达式中的通配符)。对于"02-25-2010",每次遇到"-2"都会分割,因为破折号匹配并且点匹配"2"。
或只是(除了数字以外的任何内容):
date.split(/\D/);
标签。
date.split(/-/);
或者
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());
然后按除数字外的任何字符拆分它:
date.split(/[^0-9]/);
或者只需使用日期字符串2015-05-20或2015.05.20
date.split(/\.|-/);
试试这个替代方案
date.split(/\W+/)