Javascript 如何清理多个空格/换行符?
我有一个变量Javascript 如何清理多个空格/换行符?,javascript,regex,Javascript,Regex,我有一个变量摘要,如下所示: T he Fox Jumped Over 有3个部分需要清理摘要: 2+个连续空格应变为1个空格,见下文T 2+个连续换行符应变为2个换行符,请参见下面的垂直间距 应移除选项卡 目标是: T he Fox Jumped Over 注意:我尝试了摘要。替换(/\s\s+//g')但它输出了狐狸跳过了,后者负责第一部分,但完全破坏了第二部分的垂直间距,因为它认为这是连续间距。如果存在标签,也应移除/清理标签 我怎样才能
摘要
,如下所示:
T he
Fox
Jumped
Over
有3个部分需要清理摘要:
- 2+个连续空格应变为1个空格,见下文
T
- 2+个连续换行符应变为2个换行符,请参见下面的垂直间距
- 应移除选项卡
目标是:
T he
Fox
Jumped
Over
注意:我尝试了摘要。替换(/\s\s+//g')代码>但它输出了狐狸跳过了,后者负责第一部分,但完全破坏了第二部分的垂直间距,因为它认为这是连续间距。如果存在标签,也应移除/清理标签
我怎样才能进球
更新:我想我把第二部分搞砸了,因为断线太多,所以我更新了它。但目标是我们在间距/格式方面所追求的
summary.replace(/ +/g, ' ').replace(/\n\n+/g, "\n\n").replace(/\t+/g, '');
或者,如果所有字符都是空白字符
summary.replace(/(\s)\1+/g, '$1');
这是更有效的,因为它在字符串上只传递一次
或者,如果所有字符都是空白字符
summary.replace(/(\s)\1+/g, '$1');
这是更有效的,因为它在字符串上只传递一次。两个以上的连续空格或换行符
查找((?:[]|\r?\n))\1+
更换发动机使用的$1
或\1
编辑:删除所有选项卡。
(注意-当选项卡匹配时,捕获组1将为空。
结果:选项卡被删除,而不是被替换。请使用相同的替换。)
查找(?:\t+|)((?:[]\r?\n))\1+
替换$1
或\1
edit2:2+换行符变为2换行符。
(更多附加组件,OP不断更改)
查找(?:\t+|)(?:[](?=[])|)(?:\r?\n{2}))\1*)
替换$1
或\1
只需要1次通过,是最快的方式两个以上连续空格或换行符
查找((?:[]|\r?\n))\1+
更换发动机使用的$1
或\1
编辑:删除所有选项卡。
(注意-当选项卡匹配时,捕获组1将为空。
结果:选项卡被删除,而不是被替换。请使用相同的替换。)
查找(?:\t+|)((?:[]\r?\n))\1+
替换$1
或\1
edit2:2+换行符变为2换行符。
(更多附加组件,OP不断更改)
查找(?:\t+|)(?:[](?=[])|)(?:\r?\n{2}))\1*)
替换$1
或\1
只需要1次传球,这是最快的方式@JefréN。OP没有提到任何标签。对不起,我添加了一个更新,但目标不是它看起来的样子。制表符仍然存在,换行符的垂直间距也不一样(我的错,所以我添加了更新,但只要目标是输出,就应该可以了)@Wonka,ok-更新以删除制表符并用2\n
替换2+\n
。只是想知道,是否可以将它们组合成一个替换,还是这是最有效的方法?@Wonka如果你尝试,你会得到一个无法阅读的混乱。这可能是可能的,但我怀疑它是否会更有效率。@JefréN.OP没有说任何关于选项卡的内容。对不起,我添加了一个更新,但目标不是它看起来的那样。制表符仍然存在,换行符的垂直间距也不一样(我的错,所以我添加了更新,但只要目标是输出,就应该可以了)@Wonka,ok-更新以删除制表符并用2\n
替换2+\n
。只是想知道,是否可以将它们组合成一个替换,还是这是最有效的方法?@Wonka如果你尝试,你会得到一个无法阅读的混乱。这可能是可能的,但我怀疑它是否会更有效。这是什么意思?\1
的意思是“匹配第一个括号中匹配的任何文本”确定。这回答了我的下一个问题。。。我以前从未见过这种情况!您不应该用空格字符替换换行符/制表符。@Wonka现在您已经更改了要求,不能一次完成。您使用ndn的解决方案进行多次传递。这是什么意思?\1
的意思是“匹配第一个括号匹配的任何文本”确定。这回答了我的下一个问题。。。我以前从未见过这种情况!您不应该用空格字符替换换行符/制表符。@Wonka现在您已经更改了要求,不能一次完成。您使用ndn的解决方案进行多次传递。Fwiw:thisOver
变成Over
Fwiw:thisOver
变成Over