我正在尝试使用 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.
要替换连续的空格,您可以这样做(注意您可能需要考虑制表符和连续的换行符,但这不是)。
text.replaceAll(/ +/g, " ");
对于大写:
text.replaceAll(/\.\s*./g, m => m.toUpperCase());