这是一个有效的SVG路径吗?

时间:2015-03-09 16:11:36

标签: svg w3c

我遇到了使用各种svg库呈现以下SVG路径的问题:

<path d="M19.35 10.04c-.68-3.45-3.71-6.04-7.35-6.04-2.89 0-5.4 1.64-6.65 4.04-3.01.32-5.35 2.87-5.35 5.96 0 3.31 2.69 6 6 6h13c2.76 0 5-2.24 5-5 0-2.64-2.05-4.78-4.65-4.96zm-2.35 2.96l-5 5-5-5h3v-4h4v4h3z"/>

具体来说,你可以看到关于这个块的奇怪之处:<​​/ p>

4.04-3.01.32-5.35

这解决了它:

4.04-3.01+0.32-5.35

......就像这样:

4.04-3.01 0.32-5.35

我对SVG规范的阅读表明原始路径无效,但由于图标来自Google的材料设计图标(https://github.com/google/material-design-icons) - 并且有很多相似的&# 34;错误&#34;,我很少怀疑我读BNF。

有人可以提出第二意见吗?

1 个答案:

答案 0 :(得分:2)

4.04-3.01.32-5.35有效。 SVG path specification grammar表示我们正在处理此

  

curveto-argument comma-wsp? curveto参数的序列

?在逗号wsp之后意味着0或1。在这种情况下,我们是0。

通过BNF追踪,我们最终会遇到关于在任何取幂字符之前解析数字的部分,即

  

数位序列? &#34;&#34;数字序列。

一旦我们看到一个句号,除非我们看到一个指数,否则我们再也看不到了,因此第二个句号必须是其他内容的一部分,即下一个数字。

因此上述字符序列对应的值为:4.04 -3.01 .32 -5.35