如何从 html 属性值中删除字符
How to remove characters from html attribute values?
根据 htmlcompressor.com 作者的说法,这不能做到,因为它们具有语义意义。
下面是一个具体的例子:
<meta name='description' content='Foo lets you save and share all your
web bookmarks / favorites in one place. It is free with no advertising for life, and
has straight forward privacy controls.'>
删除您拥有的返回字符:
<meta name='description' content='Foo lets you save and share all your web bookmarks / favorites in one place. It is free with no advertising for life, and has straight forward privacy controls.'>
这是一行,是我想发送到浏览器的内容。
我想使用一些字符串操作为我的所有 HTML 执行此操作。 这是否可能,或者是否有其他情况返回字符有意义? 有没有办法区分?
根据HTML4.01规范(http://www.w3.org/TR/html4/struct/global.html#h-7.4.4.2(,<meta />
元素的content=""
属性是CDATA
,这意味着空格并不重要:
CDATA 是文档字符集中的字符序列,可能包括字符实体。用户代理应按如下方式解释属性值:
- 将字符实体替换为字符,
- 忽略换行,
- 将每个回车符或制表符替换为单个空格。
- 用户代理可以忽略 CDATA 属性值中的前导和尾随空格(例如,"myval"可能被解释为"myval"(。作者不应声明带有前导或尾随空格的属性值。
所以看起来htmlcompressing的作者是错误的。
无论如何,尽管有相反的可怕警告,但您可能可以使用正则表达式来解决此问题。
我忘记了在正则表达式中组合"仅匹配此组,并在此子区域中替换"的语法,但是此技巧有效:
这个简单的正则表达式将捕获 content=""
属性的内容:
<meta.+content='(.*)'>
获得内容后,您可以进行简单的''r', ''n', ' ' -> ' '
替换。
只要关于内容属性是 CDATA 的规范是正确的,网站站长就可以通过 JavaScript 使用给定示例中任何属性的值,例如"元"标记的"内容",压缩属性的值会改变预期结果。
因此,htmlcompressor.com 的作者是正确的,因为它们具有压缩目的的语义含义。
<meta id="m1" name="item1" content="Sample stuff:
1. This text is multiline on purpose.
2. And the author expects it to remain this way after compression.
So yes, it does matter...">
压缩的同一元标记:
<meta id="m2" name="item2" content="Sample stuff: 1. This text is multiline on purpose. 2. And the author expects it to remain this way after compression. So yes, it does matter...">
并显示差异:
<script>
alert('"'
+ document.getElementById('m1').content
+ '"'n'n---------------'n'n"'
+ document.getElementById('m2').content + '"'
);
</script>
Afaik,该站点的目标是在不改变结果布局或功能的情况下压缩文档。
现场示例:http://jsfiddle.net/7Qb74/
- 为什么以下正则表达式不删除 ## 字符
- javascript使用for循环从多个字符串中删除字符
- 使用Jquery Keydown函数删除字符
- 使用 Javascript 正则表达式删除字符后的所有内容
- 如何在 DOM 加载后使用 JavaScript 或 JQuery 从 href 属性中删除字符
- nl2br jQuery函数从每行中删除字符
- 如何通过javascript在文本区域中插入/删除字符
- 如何从 html 属性值中删除字符
- 如果文本以这些字符开头或结尾,请删除字符
- 如何按位置号从字符串中删除字符
- 单击按钮时删除字符,除非输入值为0
- 删除字符“”$"从产品的角度来看
- 如何从字符串中删除字符
- 只有当JavaScript中的子字符串长度大于x时,才从子字符串中删除字符
- 由于Javascript,Backspace(删除字符)在Firefox中无法正常工作
- JavaScript删除字符前的所有文本
- 如何在用户输入javascript时删除字符
- 从字符串javascript算法中删除字符
- 从javascript数组内的对象中删除字符
- JSON 字符串删除字符