Javascript分割正则表达式问题
您好,我正在尝试一个我认为在Javascript中相当简单的正则表达式,但这给我带来了很多麻烦。 我希望能够通过javascript通过“-”、“.”、“/”和“”拆分日期Javascript分割正则表达式问题,javascript,regex,split,Javascript,Regex,Split,您好,我正在尝试一个我认为在Javascript中相当简单的正则表达式,但这给我带来了很多麻烦。 我希望能够通过javascript通过“-”、“.”、“/”和“”拆分日期 var date = "02-25-2010"; var myregexp2 = new RegExp("-."); dateArray = date.split(myregexp2); 正确的正则表达式是什么?任何和所有的帮助都会很好 您需要将希望拆分的字符放入一个,这会告诉正则表达式引擎“这些字符中的任何一个都是匹配
var date = "02-25-2010";
var myregexp2 = new RegExp("-.");
dateArray = date.split(myregexp2);
正确的正则表达式是什么?任何和所有的帮助都会很好 您需要将希望拆分的字符放入一个,这会告诉正则表达式引擎“这些字符中的任何一个都是匹配的”。出于您的目的,这看起来像:
date.split(/[.,\/ -]/)
虽然破折号在字符类中作为范围说明符具有特殊意义(即[a-z]
的含义与[abcdefghijklmnopqrstuvxyz]
相同),但如果将其作为类中的最后一个对象,则它将被视为表示文字破折号,不需要转义
为了解释模式不起作用的原因,/-./
告诉正则表达式引擎匹配后跟任意字符的文字破折号(正则表达式中的通配符)。对于“02-25-2010”,每次遇到“-2”时它都会被拆分,因为破折号和点匹配“2”。您可以使用
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());
试试这个
date.split(/\W+/)在代码前放一个换行符,4个空格将正确格式化。您还可以提到,点在字符类中没有任何特殊含义,而不是充当通配符(这没有任何意义),你能解释一下为什么这是一个比之前已经发布的5+更好的答案吗?它是如何工作的?这对我来说是所有答案中最好的。为什么要挂g旗?
let elements = rawElements.map(element => element.trim());