如何从句子中删除额外的空格以及在点或逗号之前没有空格

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

目前正在寻找一种方法来删除额外的空格,例如在这样的句子中:“早上好,我刚刚在外面散步。”而是改为“早上好,我刚刚到外面散步了。”在打字稿中。目前正则表达式有类似的东西:

private trimText(text: string): string {
    return text.replace(/\s+/g, ' ').trim();
}

但这会变成“早上好,我刚刚到外面散步了”。逗号和点之前有额外的空格。解决这个问题的好方法是什么?

regex typescript
1个回答
0
投票

您可以使用替换回调并根据标点符号的存在返回正确的替换:

const input = ' Goodmorning , I have    just taken a walk outside .'

console.log(input.replace(/\s+[.,]?/g, m => m.endsWith('.') || m.endsWith(',') ? m.slice(-1) : ' ').trim());

© www.soinside.com 2019 - 2024. All rights reserved.