Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/36.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_Parsing_Split - Fatal编程技术网

Javascript 拆分字符串,在另一个字符处断开

Javascript 拆分字符串,在另一个字符处断开,javascript,parsing,split,Javascript,Parsing,Split,我有字符串: Name01: Name02 - Project Name (Client) - Infos 使用JavaScript,最快的解析方法是什么: Name01 Name02 Project Name Client Infos 您可以在任何需要的地方用公共字符替换字符串。这样你就可以和他们分开了。请尝试以下方法: var str=“Name01:Name02-项目名称(客户)-信息” str=str.replace(/[-()]/g,':').split(':'); str=st

我有字符串:

Name01: Name02 - Project Name (Client) - Infos
使用JavaScript,最快的解析方法是什么:

Name01
Name02
Project Name
Client
Infos

您可以在任何需要的地方用公共字符替换字符串。这样你就可以和他们分开了。请尝试以下方法:

var str=“Name01:Name02-项目名称(客户)-信息”
str=str.replace(/[-()]/g,':').split(':');
str=str.filter(i=>i.trim()).map(j=>j.trim());

console.log(str)这并不完美,但很简单:

const str = 'Name01: Name02 - Project Name (Client) - Infos';

const matches = str
  .replace(/[^\w\s+]/gi, '')
  .replace(/\s\s+/gi, ' ')
  .split(' ');

console.log(matches);

这里的问题是在
项目名称
之间保留空格

好吧,假设您的“输入”是一个字符串-输出是什么?那是一个数组吗?再来一根绳子?换新线?空间分割?但不是“项目名称”?这取决于输入数据的变化程度。“项目名称”可以包含多于或少于两个单词吗?或者其他字段是否需要包含空格?是否有可能出现“:”或“-”或“(”或“)”作为需要捕获的名称的一部分出现,而不仅仅是作为分隔符出现?是否有其他规律可以依赖于一致性,或者您可能需要解决的不规则性?您可能需要在此处进行一些防御性编码来处理可能存在的奇怪输入,而不是专注于“最快”的方法。更进一步,是分隔符周围需要空格,还是可以是,例如,
Name01:Name02 Project Name(Client)-Infos
可以有更多空格吗?它们总是空格而不是制表符吗?项目名称中是否可以显示破折号?冒号可以出现在Name01和/或Name02区域吗?谢谢!确切地说,这有点棘手。。该字符串来自谷歌日历事件的倾斜。所有用户都与定界者保持相同的角色,但可以是:⛔️丹尼尔:约翰·多伊-美国航空公司(可口可乐)-红色/son/Ext/3位置使用
[-()]
中的任何一个都不会出现在字符串的其他位置。@StephenP,如果这些都不存在,
split()
将忽略它们。该解决方案基于字符串provide…thanksw关于
.map(j=>j.trim())
首先,然后是
.filter(i=>i)
?不需要。修剪()twice@Sphinx,
map()
首先,然后
filter()
也可以工作。这里
map()
修剪字符串,并
filter()
从数组中删除空字符串。但是
map()
之后的
filter()
将减少迭代次数…谢谢