gpt4 book ai didi

html - 去除不必要的空格 - "unnecessary"是关键

转载 作者:行者123 更新时间:2023-11-28 00:16:02 27 4
gpt4 key购买 nike

为了减少带宽,我试图去除不必要的空白。我所说的“不必要”指的是行首或行尾的任何垂直空格和水平空格,但如果它在 <textarea> 中则不是。标签。

虽然我对The Pony He Comes并不陌生,我相当确定一个完整的 HTML 解析器对于这个任务来说是多余的。据我了解,正则表达式可以工作。

我现在的正则表达式是:

$out = preg_replace("/[ \t]*\r?\n[ \t]*/","",$in);

这似乎去除了我在上面指定的空白,除了 <textarea>规则。我的问题归结为:如何确保替换不会在指定范围内发生?可以安全地假设所有 HTML 实体都在 <textarea> 中正确转义了。

最佳答案

如果你有 html:

<P>a
b</P>

然后你去掉垂直空格,你最终会得到 ab而不是 a b .因此,您需要将其转换为空格(这毫无意义)。

仅在标签附近剥离也无济于事,因为您可能有(例如)两个 SPAN标签彼此靠近。

您可以删除行首或行尾的空白 - 但只是因为您已经有垂直空白。

因此,如果您真的想这样做,您可以将多次出现的空格折叠为一个空格。

如果您避免使用 javascript、输入字段、pre 和文本区域,您应该没问题。但是如果没有一个完整的解析器,就不可能真正避免这些!例如有人可以放 <TEXTAREA>在注释中,如果没有解析器,您将一直寻找文本区域的末尾,但永远找不到。

但更糟糕的是 value input 的属性.你不想弄乱它——但如果没有解析器,就完全不可能找到它:

<INPUT name="value='hello'" value='name="hi"'>

颜色编码清楚地表明了属性是什么,但请尝试在没有解析器的情况下找到它们。

避免在标签内部也无济于事,因为您可以合法地放置 >在评论中。

关于html - 去除不必要的空格 - "unnecessary"是关键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12083262/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com