这个js脚本有什么更好的写法吗?尝试以句子方式格式化文本

问题描述 投票:0回答:1

我正在尝试使用 React 构建一个转换案例网站。 有一个更好的方法吗?它应该删除多余的空格并将每个“.”后的第一个字母大写。

const handleSentanceFormat = () => {
    let line = text.split('\n');
    for(let i = 0; i < line.length; i++){
      let sentance = line[i].replace(/\s{1,}/g, ' ').replaceAll(' .', '.').trim().split(".");
      for(let j = 0; j < sentance.length; j++){
        let s = sentance[j].trim();
        sentance[j] = s.length === 0 ? '' : s[0].toUpperCase() + s.substring(1);
      }
      line[i] = sentance.join(". ");
    }
    setText(line.join("\n"));
  };

示例: 输入:

abcd                        abcd.         aaaa.
aa         aa              .  aaa.

输出:

Abcd abcd. Aaaa.
Aa aa. Aaa.
javascript reactjs
1个回答
1
投票

要替换连续的空格,您可以这样做(注意您可能需要考虑制表符和连续的换行符,但这不是)。

text.replaceAll(/ +/g, " ");

对于大写:

text.replaceAll(/\.\s*./g, m => m.toUpperCase());
© www.soinside.com 2019 - 2024. All rights reserved.