Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/374.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 - Fatal编程技术网

Javascript 我需要将重复单词上的长字符串拆分为一个数组

Javascript 我需要将重复单词上的长字符串拆分为一个数组,javascript,regex,Javascript,Regex,尝试使用Javascript时,我有一个很长的字符串,需要使用一个在字符串中重复的单词将其拆分为数组。 例如: 我试过分拆和配对,但总是漏掉了那个& split_string = []; split_string = long_string.split(/THS&/); console.log(split_string); 放入一个数组: 但我得到的是 [| Willam | Baker | 1234 Corker St| Jacksonville, TX 75074|, Steve

尝试使用Javascript时,我有一个很长的字符串,需要使用一个在字符串中重复的单词将其拆分为数组。 例如:

我试过分拆和配对,但总是漏掉了那个&

split_string = [];
split_string = long_string.split(/THS&/);
console.log(split_string);
放入一个数组:

但我得到的是

[| Willam | Baker | 1234 Corker St| Jacksonville, TX 75074|, Steve | James | 4312 Corker St | Jacksonville, TX 75074|, | Samuel | Cade | 1257 Corker St | Jacksonville, TX 75074|]
split方法在生成的子字符串中不包含分隔符。如果分隔符总是相同的,请考虑在每个子串的开始处连接它。您可以迭代split_string并在数组的每个字符串的开头添加concatenate th&split方法在结果子字符串中不包含分隔符。如果分隔符总是相同的,请考虑在每个子串的开始处连接它。您可以迭代split_字符串并在数组的每个字符串的开头添加concatenate th&结果中不包括您在类似th的拆分中匹配的任何内容。解决方案是使用a,它实际上不捕获字符串:

var long|U string=THS&|Willam | Baker | 1234德克萨斯州杰克逊维尔科克尔街75074 | THS&Steve | James | 4312德克萨斯州杰克逊维尔科克尔街75074 | THS&|Samuel | Cade | 1257德克萨斯州杰克逊维尔科克尔街75074| var split_string=长字符串。split/?=th&/; console.logsplit_字符串 在像THS&这样的拆分中匹配的任何内容都不包括在结果中。解决方案是使用a,它实际上不捕获字符串:

var long|U string=THS&|Willam | Baker | 1234德克萨斯州杰克逊维尔科克尔街75074 | THS&Steve | James | 4312德克萨斯州杰克逊维尔科克尔街75074 | THS&|Samuel | Cade | 1257德克萨斯州杰克逊维尔科克尔街75074| var split_string=长字符串。split/?=th&/;
console.logsplit_字符串 分隔符不会包含在结果中,因此您必须将其添加回。此外,第一项将为空,因此请使用将其从结果数组中删除。例如:

var long|U string=THS&|Willam | Baker | 1234德克萨斯州杰克逊维尔科克尔街75074 | THS&Steve | James | 4312德克萨斯州杰克逊维尔科克尔街75074 | THS&|Samuel | Cade | 1257德克萨斯州杰克逊维尔科克尔街75074 |; var split_string=long_string.spliths和.mapfunctionitem{ 返回THS和+项; }; split_string.shift; console.logsplit_字符串; /* [ 德克萨斯州杰克逊维尔科克尔街1234号威兰贝克75074号, 德克萨斯州杰克逊维尔科克尔街4312号,邮编75074, 德克萨斯州杰克逊维尔科克尔街1257号塞缪尔凯德75074| ]
*/ 分隔符不会包含在结果中,因此您必须将其添加回。此外,第一项将为空,因此请使用将其从结果数组中删除。例如:

var long|U string=THS&|Willam | Baker | 1234德克萨斯州杰克逊维尔科克尔街75074 | THS&Steve | James | 4312德克萨斯州杰克逊维尔科克尔街75074 | THS&|Samuel | Cade | 1257德克萨斯州杰克逊维尔科克尔街75074 |; var split_string=long_string.spliths和.mapfunctionitem{ 返回THS和+项; }; split_string.shift; console.logsplit_字符串; /* [ 德克萨斯州杰克逊维尔科克尔街1234号威兰贝克75074号, 德克萨斯州杰克逊维尔科克尔街4312号,邮编75074, 德克萨斯州杰克逊维尔科克尔街1257号塞缪尔凯德75074| ] */ 试试这个

long_string.match(/\S.+?(?=( THS&)|$)/g)
前面的空格用于修剪最后一个空格

试试这个

long_string.match(/\S.+?(?=( THS&)|$)/g)

前面的空间用于修剪最后的空间

您希望得到什么?你发布的数组的语法是错误的。向前看就是你要找的:这个str.split/THS&/.mapx=>THS&+x?你到底希望得到什么?你发布的数组的语法是错误的。向前看就是你要找的:这个str.split/THS&/.mapx=>THS&+x?谢谢大家,其他人的答案有效,但我用了这个。谢谢大家,其他人的答案有效,但我用了这个。
long_string.match(/\S.+?(?=( THS&)|$)/g)