如何使用JavaScript正则表达式精准替换行尾的等号及后续换行符
解决行尾等号+换行符的替换问题
嘿,我来帮你搞定这个正则的坑!你之前的代码之所以会误替换中间的等号,是因为你的正则/\n*.+=/g逻辑不对——它会匹配任意数量的换行(包括0个)加上任意字符直到某个等号,这自然会把像style=3D"里的正常等号也给抓进去替换掉,完全偏离了你只处理行尾等号的需求。
正确的解决方案
你需要精准匹配行尾的等号,以及紧跟其后的换行符,对应的正则表达式是:
let parsed = message.replace(/=\r?\n/g, '')
为什么这个正则管用?
=:精准匹配目标等号\r?\n:匹配换行符,\r?是为了兼容Windows系统的\r\n换行和Unix/Linux的\n换行g修饰符:全局替换所有符合条件的内容
这个正则只会找“等号直接跟着换行”的场景,完全不会碰那些中间位置的等号(比如style=3D"里的等号后面是3D",不是换行,所以不会被匹配)。
测试你的示例文本
拿你提供的片段来测试:
原文本:
<p style=3D"border-bottom: 1px solid lightgrey; padding-bottom: 10px; margi= n-bottom: 10px">From @mytwitterrrr filtered:<br></p><div><div><a href=3D"ht= tps://feeder.co/p/076b2f56-af6c-11eb-adf3-1a21cf3a468a?u=3Da6566144-b0a5-4d=
替换后会变成:
<p style=3D"border-bottom: 1px solid lightgrey; padding-bottom: 10px; margin-bottom: 10px">From @mytwitterrrr filtered:<br></p><div><div><a href=3D"https://feeder.co/p/076b2f56-af6c-11eb-adf3-1a21cf3a468a?u=3Da6566144-b0a5-4d
完美合并了被换行拆分的单词,同时保留了所有正常的等号~
内容的提问来源于stack exchange,提问作者Jeff Smith
相关产品推荐
相关产品推荐

