解析 JavaScript 中带有许多空格的字符串



>我有一个像"Azarenke V. Su Simple 90"这样的字符串,我需要拆分它并将所有单词放在数组中。我使用此代码:

var s = "Azarenke   V.   Su   Simple 90";
var array = s.split(/( +)/);
console.log(JSON.stringify(array));

但结果是:

"["Azarenke","   ","V.","   ","Su","   ","Simple"," ","90"]"

其中一些"空"字符串仅包含空格。但我不抱怨将它们推入输出数组。我熟悉C#和.net,它有类似RemoveEmptyEntries的东西,但在javascript中找不到相同的内容。如何解决此任务?可能需要在正则表达式中做一些评论吗?

尝试不带(捕获)括号

var s = "Azarenke   V.   Su   Simple 90";
var array = s.split(/s+/);
console.log(JSON.stringify(array)); 
// Output:  ["Azarenke","V.","Su","Simple","90"]

只需删除捕获组即可。捕获组将保留分隔符。也就是说,它根据分隔符拆分输入,并在最终打印出分隔符。

> var s = "Azarenke   V.   Su   Simple 90";
undefined
> s.split(/s+/);
[ 'Azarenke',
  'V.',
  'Su',
  'Simple',
  '90' ]

您可以先用单个空格替换多个空格,使用:

`Azarenke   V.   Su   Simple 90`.replace(/ +(?= )/g,'');

然后,您可以按空格拆分。

最新更新