首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我怎样才能清理空间和新的线条?

问我怎样才能清理空间和新的线条?
EN

Stack Overflow用户
提问于 2013-09-11 14:32:51
回答 2查看 157关注 0票数 0

我有以下输出:

(,这里有很多新行,) Lorem Ipsum只是印刷和排版行业的虚拟文本。 Lorem Ipsum一直是业界的标准假人 文字从1500年代开始,当时一台不知名的打印机 一间打字机,把它弄成一本样书。 (,这里有很多新行,) 它不仅活了五个世纪, 也是电子排版的飞跃, 基本上保持不变。它被普及了 在20世纪60年代,随着包含Lorem Ipsum段落的Letraset的发行,

为了清理这个问题,我使用了大量的正则表达式

代码语言:javascript
复制
var body = contentDiv.replace(/ {2,}/g, ' ').replace(/([^\r\n][^\n])(?:\r?\n)([^\r\n][^\n])/g,"$1$2");
$('eBody').value = body.replace(/\n{3,}/g, '\n').replace(/^\s\s*/, '');

其中contentDiv是上面的文本,由getElementsByTagName返回。

代码语言:javascript
复制
var contentDiv = element.getElementsByTagName("div")[0].textContent;

只是div有很多格式(.),当我调用textContent函数时,我确实得到了带有空格和额外新行的文本,通常它应该如下所示:

Lorem Ipsum只是印刷和排版行业的虚拟文本。自从1500年代以来,Lorem就一直是业界标准的虚拟文本,当时一台不知名的打印机拿出一台打字机,把它拼成一本样书。 它不仅活了五个世纪,而且跨越了电子排版,基本保持不变。它在20世纪60年代流行开来,发行了包含Lorem Ipsum段落的Letraset单张,

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-09-11 15:04:20

用于删除前导和尾随空格以及限制连续换行符数量的单个regex替换:

代码语言:javascript
复制
str = str.replace(/(\s*((\r?\n){2,})\s*|\s*((\r?\n){1,2})\s*)/g,"$2$4");

转弯:

代码语言:javascript
复制
asdfasdf 


asdfafd
 sdf  
d
d sa  






 sadfdsaf

转入:

代码语言:javascript
复制
asdfasdf

asdfafd
sdf
d
d sa

sadfdsaf

刚刚修复了3+多行换行符

代码语言:javascript
复制
.replace(/(\r?\n){3,}/g,"$1$1");

只修复引导和尾随的空白空间

代码语言:javascript
复制
.replace(/^ *| *$/gm,'');

更新:第一个表达式没有清除字符串开头和结尾的空格

现在什么都做!

代码语言:javascript
复制
.replace(/^\s*|\s*$|(\s*((\r?\n){2,})\s*|\s*((\r?\n){1,2})\s*)/g,"$2$4");
票数 2
EN

Stack Overflow用户

发布于 2013-09-11 15:13:01

同样,这个方法也很有效:)

代码语言:javascript
复制
s/^\s*(?:(\r?\n)(?:[\s^\r\n]+)(.+?))$/\1\2/gm
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18744061

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档