RegEx最后一个空间问题

时间:2015-09-21 09:06:40

标签: javascript regex

我的RegEx = /\s+/

我想要完成所有数字都用空格分隔。它可以工作,但它也捕获了最后一个空间(因为我将它拆分,最后一个空格作为“”数组元素)。

“123 123 213” - 工作正常。

“21 12 21 421” - 抓住最后一个空间。

我该如何解决这个问题?

4 个答案:

答案 0 :(得分:4)

在运行正则表达式和完成之前修剪字符串。

答案 1 :(得分:1)

您可以简单地使用单词边界。

{{1}}

DEMO

答案 2 :(得分:1)

修剪任何前导和尾随空格,然后拆分:

var numArr = "21 12 21 421 ".replace(/^\s+|\s+$/g, "").split(/ +/);

那就是它。

根据您的环境,您可以使用内置修剪方法。

var numArr = "21 12 21 421 ".trim().split(" ");

如果您没有修剪,但想要使用它,可以尝试Mozilla中的此填充:

if (!String.prototype.trim) {
  String.prototype.trim = function () {
    return this.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g, '');
  };
}

答案 3 :(得分:1)

直接在字符串上使用此正则表达式:\s+(?=\S),无需修剪。 demo

这匹配任何后跟至少一个不是空格的字符的空格。