鉴于我从here获取的以下示例:
CSS.escape(".foo#bar") // "\.foo\#bar"
CSS.escape("()[]{}") // "\(\)\[\]\{\}"
由于.foo#bar
是有效的CSS选择器表达式。为什么我们需要在某些字符之前添加\
?假设我想编写自己的程序,该程序执行转义CSS文件中所有值/表达式的相同任务,那我该怎么办?
答案 0 :(得分:2)
只有当这些字符串包含您希望按字面意思处理的特殊符号时,才转义字符串。如果您期望有效的CSS选择器作为用户输入,那么您不应该逃避任何事情。
.foo#bar
是一个有效的CSS选择器,但它意味着与\.foo\#bar
完全不同的东西。前者匹配具有相应类和ID的元素,例如HTML中的<div class=foo id=bar>
。后者匹配一个元素名称&#34; .foo#bar&#34;,它在假设的标记语言中可以表示为<.foo#bar>
(显然这不是合法的HTML或XML语法,但是你会得到图片)。