如何删除点前的空格?

时间:2021-01-08 06:49:56

标签: javascript space uppercase

我尝试在句子中间,大写字母之前添加一个点。 我试过这个:

function correctSentences(str){
  s = str.replace(/([A-Z])/g,'. $1').trim();
 return s;
}
correctSentences("  avi loves pizza Dani loves cola  "); 

输出为:

"avi loves pizza . Dani loves cola"

如何去掉点前的空格? 谢谢!

3 个答案:

答案 0 :(得分:0)

在正则表达式中添加 \s

function correctSentences(str){
  s = str.replace(/(\s[A-Z])/g,'.$1').trim();
 return s;
}

console.log(correctSentences("  avi loves pizza Dani loves cola  "));

答案 1 :(得分:0)

我会使用这个版本:

function correctSentences(str) {
    return str.replace(/\s+(?=[A-Z])/g, '.  ').trim();
}

var input = "  avi loves pizza Dani loves cola  ";
var output = correctSentences(input);
console.log(input + "\n" + output);

这里的正则表达式逻辑表示:

\s+        match one or more whitespace characters
(?=[A-Z])  then assert (but do not consume) that what follows is a capital letter

我们用点代替,结束上一句,后跟两个空格,与下一句开头分开。

答案 2 :(得分:0)

我提议:

function correctSentences(str){
  return str.replace(/(?=\b\s+[A-Z])/g, '.').trim();
}
const result = correctSentences("  avi loves pizza. Bob loves pizza Dani loves cola  "); 

console.log(result);

如果已经存在 .,它还会阻止添加额外的 .

相关问题