我有以下输出:
(,这里有很多新行,) Lorem Ipsum只是印刷和排版行业的虚拟文本。 Lorem Ipsum一直是业界的标准假人 文字从1500年代开始,当时一台不知名的打印机 一间打字机,把它弄成一本样书。 (,这里有很多新行,) 它不仅活了五个世纪, 也是电子排版的飞跃, 基本上保持不变。它被普及了 在20世纪60年代,随着包含Lorem Ipsum段落的Letraset的发行,
为了清理这个问题,我使用了大量的正则表达式
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返回。
var contentDiv = element.getElementsByTagName("div")[0].textContent;只是div有很多格式(.),当我调用textContent函数时,我确实得到了带有空格和额外新行的文本,通常它应该如下所示:
Lorem Ipsum只是印刷和排版行业的虚拟文本。自从1500年代以来,Lorem就一直是业界标准的虚拟文本,当时一台不知名的打印机拿出一台打字机,把它拼成一本样书。 它不仅活了五个世纪,而且跨越了电子排版,基本保持不变。它在20世纪60年代流行开来,发行了包含Lorem Ipsum段落的Letraset单张,
发布于 2013-09-11 15:04:20
用于删除前导和尾随空格以及限制连续换行符数量的单个regex替换:
str = str.replace(/(\s*((\r?\n){2,})\s*|\s*((\r?\n){1,2})\s*)/g,"$2$4");转弯:
asdfasdf
asdfafd
sdf
d
d sa
sadfdsaf转入:
asdfasdf
asdfafd
sdf
d
d sa
sadfdsaf刚刚修复了3+多行换行符
.replace(/(\r?\n){3,}/g,"$1$1");只修复引导和尾随的空白空间
.replace(/^ *| *$/gm,'');更新:第一个表达式没有清除字符串开头和结尾的空格
现在什么都做!
.replace(/^\s*|\s*$|(\s*((\r?\n){2,})\s*|\s*((\r?\n){1,2})\s*)/g,"$2$4");发布于 2013-09-11 15:13:01
同样,这个方法也很有效:)
s/^\s*(?:(\r?\n)(?:[\s^\r\n]+)(.+?))$/\1\2/gmhttps://stackoverflow.com/questions/18744061
复制相似问题