为什么这个javascript正则表达式拆分功能不起作用?

时间:2017-06-06 13:19:39

标签: javascript regex string

我正在尝试用三个或更多磅符号或三个或更多空格分割一个字符串。

我正在使用看起来像这样的函数:

     var produktDaten = dataMatch[0].replace(/\x03/g, '').trim().split('/[#\s]/{3,}');  
     console.log(produktDaten + ' is the data');

我需要稍微清理数据,因此replacetrim

我得到的输出看起来像这样:

##########################################################################MA-KF6###Beckhoff###EL1808    BECK.EL1808###MA-KF7###Beckhoff###EL1808    BECK.EL1808###MA-KF12###Beckhoff###EL1808    BECK.EL1808###MA-KF13###Beckhoff###EL1808    BECK.EL1808###MA-KF14###Beckhoff###EL1808    BECK.EL1808###MA-KF15###Beckhoff###EL1808    BECK.EL1808###MA-KF16###Beckhoff###EL1808    BECK.EL1808###MA-KF19###Beckhoff###EL1808    BECK.EL1808 is the data

这怎么可能?无论输入如何,分割都不应删除磅和多个空格?

1 个答案:

答案 0 :(得分:4)

您将字符串传递给split,输入字符串不包含该字符串。我想你想用

/[#\s]{3,}/

喜欢这里:

var produktDaten = "##########################################################################MA-KF6###Beckhoff###EL1808    BECK.EL1808###MA-KF7###Beckhoff###EL1808    BECK.EL1808###MA-KF12###Beckhoff###EL1808    BECK.EL1808###MA-KF13###Beckhoff###EL1808    BECK.EL1808###MA-KF14###Beckhoff###EL1808    BECK.EL1808###MA-KF15###Beckhoff###EL1808    BECK.EL1808###MA-KF16###Beckhoff###EL1808    BECK.EL1808###MA-KF19###Beckhoff###EL1808    BECK.EL1808";
console.log(produktDaten.replace(/\x03/g, '').trim().split(/[#\s]{3,}/));

/[#\s]{3,}/正则表达式匹配3个或更多字符#或空格。

注意:只是删除它周围的'无法解决问题,因为您正在使用未转义的/并量化它。实际上,您需要量化字符类[#\s]