如何转义querySelector以支持HTML5 ID

时间:2015-06-15 09:56:45

标签: javascript css html5

HTML 4.01 specthis post表示HTML ID令牌必须以字母([A-Za-z])开头,后面可以跟任意数量的字母,数字([0-9] ]),连字符( - ),下划线(_),冒号(:)和句点(。)。

HTML5中,您现在可以使用任何字符,只要至少有一个字符且不使用空格。

它很难逃脱CSS代码的特征,但我的问题是,如何编写一个可以安全地转义选择器的方法,以便它可以在document.querySelector中使用而不会抛出错误?

修改

我知道您使用反斜杠来逃避特殊字符,但我的问题实际上归结为:如何确定哪些字符需要转义。正则表达式会很好。

2 个答案:

答案 0 :(得分:1)

你可以使用斜杠来寻找:

document.querySelector('#id\\<<meta character>>');

例如:

document.querySelector('#id\\:title');

答案 1 :(得分:1)

您可以使用斜杠()来转义它,但由于\本身是一个转义字符,您需要使用\\

代表my#idmy\\#id