Javascript RegEx:用逗号分隔,过滤多余的空格

时间:2014-12-11 02:12:47

标签: javascript regex

这是我的输入字符串:

var str = 'tags:  JavaScript, Markdown,   Web  , programming   skill  ';

首先,我按

过滤'tags:'部分
var tags = str.match(/^tags:\s{0,}(.{1,})/);

然后字符串是

'JavaScript, Markdown,   Web  , programming   skill  '

如何通过RegExp-match获得结果。

['JavaScript', 'Markdown', 'Web', 'programming skill']

谢谢大家。

2 个答案:

答案 0 :(得分:2)

我建议您执行string.replace然后string.split,因为您的输入中间包含多个空格。

> var str = 'tags:  JavaScript, Markdown,   Web  , programming   skill  ';
> var res = str.replace(/tags:\s*|\s*$|( ) +/g, '$1');
> res.split(/\s*,\s*/)
[ 'JavaScript',
  'Markdown',
  'Web',
  'programming skill' ]

tags:\s*|\s*$|( ) +匹配前导tags字符串以及以下空格或位于字符串末尾的空格或捕获中间的单个空格以及该单个空格后面的空格匹配。用组索引1中的字符替换所有匹配的字符将导致删除尾随空格,字符串tags spaces和中间的两个或多个空格将变为一个。

DEMO for the String.replace Part

答案 1 :(得分:0)

tags:\s+|\s*,\s+

由此拆分。稍后移动empty element。参见演示。

https://regex101.com/r/qB0jV1/4