使用match()应用正则表达式后,JavaScript删除空格

时间:2017-10-24 16:51:47

标签: javascript regex

在使用match()应用正则表达式之后如何删除撇号之后和周期/完全停止之前的恼人空白区域的任何想法? 结果应该是一个字符串,没有"不必要的"空间。 非常感谢。

var text = "There’s no doubt these days.";
var r = text.match(/\w+|[^'\s\w]+/g);
var j = r.join(" ");
console.log(j);

// the result: There ’ s no doubt lives these days .
// should be: There’s no doubt lives these days.

2 个答案:

答案 0 :(得分:2)

使用String.prototype.replace()



var text = "There’s no doubt these days.";
var r = text.match(/\w+|[^'\s\w]+/g);
var j = r.join(" ")
  .replace(" ’ ", "’")
  .replace(" .", ".");
console.log(j);




答案 1 :(得分:0)

我想你想摆脱两个词之间的多个空格,但保留标点符号完好无损?您可以将正则表达式更改为:

var r = text.match(/\S+/g);

或者只需用.replace

替换多个空格
var text = "There’s    no   doubt         these   days.";
text = text.replace(/\s+/g, " ");

console.log(text);