如何在上传服务器前限制字符串的多空格与多换行?
同时清理字符串中的多余空格与换行
需求说明
上传字符串至服务器前需完成两类格式调整:
- 移除每行开头的空白字符,将行内连续多个空格替换为单个空格
- 将连续的多行换行(含换行间夹杂的空白)压缩为仅两个换行
示例
输入:
i am a text with little to no meaning asdas
期望输出:
i am a text with little to no meaning asdas
解决方案
通过链式调用正则替换即可实现需求,先处理行内空格问题,再压缩多余换行:
const formattedStr = str // 清理行首空白与行内多空格 .replace(/^[^\S\n]+|[^\S\n]+(?=[^\S\n])/gm, '') // 压缩多余换行 .replace(/\n\s*\n/g, '\n\n');
正则说明
行内空格清理:
/^[^\S\n]+|[^\S\n]+(?=[^\S\n])/gm^[^\S\n]+:匹配每行开头的非换行空白字符(空格、制表符等),替换为空以去除缩进[^\S\n]+(?=[^\S\n]):匹配连续空白中的冗余部分,通过正向预查只保留单个空格gm:全局+多行模式,确保每行开头都能被正确匹配
换行压缩:
/\n\s*\n/g- 匹配两个换行之间的任意空白字符(包括空格、制表符、额外换行),替换为两个换行,实现连续换行的压缩
内容的提问来源于stack exchange,提问作者Niclas Göransson
相关产品推荐
相关产品推荐

