Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/383.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript分割正则表达式问题_Javascript_Regex_Split - Fatal编程技术网

Javascript分割正则表达式问题

Javascript分割正则表达式问题,javascript,regex,split,Javascript,Regex,Split,您好,我正在尝试一个我认为在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]
的含义与
[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());