我正在尝试用三个或更多磅符号或三个或更多空格分割一个字符串。
我正在使用看起来像这样的函数:
var produktDaten = dataMatch[0].replace(/\x03/g, '').trim().split('/[#\s]/{3,}');
console.log(produktDaten + ' is the data');
我需要稍微清理数据,因此replace
和trim
。
我得到的输出看起来像这样:
##########################################################################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
这怎么可能?无论输入如何,分割都不应删除磅和多个空格?
答案 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]
。