首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在javascript中,转义querySelector()中的字符

在javascript中,转义querySelector()中的字符
EN

Stack Overflow用户
提问于 2011-10-06 04:01:26
回答 1查看 1.1K关注 0票数 2

我发现几乎所有非字母数字字符都必须在querySelector()querySelectorAll()中引用。从我的测试来看:

代码语言:javascript
运行
复制
for( var i=32; i<127; i++ ) { 
   var ch = String.fromCharCode(i);
   try{ document.querySelector("[a"+ch+"b]") }
   catch(e) { console.log( i + ' = ' + ch ); }
};

只有"-“和"_”不需要逃跑。这需要为querySelector的参数设置一个专门的querySelector类型函数,以确保它们被正确地过滤。其他函数(例如,setAttributegetAttribute)不需要转义。

我无法找到验证测试的文档。例如,属性名称中的Unicode字符如何?

EN

回答 1

Stack Overflow用户

发布于 2012-09-18 21:02:36

选择器文法如下:

代码语言:javascript
运行
复制
ident     [-]?{nmstart}{nmchar}*
name      {nmchar}+
nmstart   [_a-z]|{nonascii}|{escape}
nonascii  [^\0-\177]
unicode   \\[0-9a-f]{1,6}(\r\n|[ \n\r\t\f])?
escape    {unicode}|\\[^\n\r\f0-9a-f]
nmchar    [_a-z0-9-]|{nonascii}|{escape}
num       [0-9]+|[0-9]*\.[0-9]+
string    {string1}|{string2}
string1   \"([^\n\r\f\\"]|\\{nl}|{nonascii}|{escape})*\"
string2   \'([^\n\r\f\\']|\\{nl}|{nonascii}|{escape})*\'
invalid   {invalid1}|{invalid2}
invalid1  \"([^\n\r\f\\"]|\\{nl}|{nonascii}|{escape})*
invalid2  \'([^\n\r\f\\']|\\{nl}|{nonascii}|{escape})*
nl        \n|\r\n|\r|\f
w         [ \t\r\n\f]*

D         d|\\0{0,4}(44|64)(\r\n|[ \t\r\n\f])?
E         e|\\0{0,4}(45|65)(\r\n|[ \t\r\n\f])?
N         n|\\0{0,4}(4e|6e)(\r\n|[ \t\r\n\f])?|\\n
O         o|\\0{0,4}(4f|6f)(\r\n|[ \t\r\n\f])?|\\o
T         t|\\0{0,4}(54|74)(\r\n|[ \t\r\n\f])?|\\t
V         v|\\0{0,4}(58|78)(\r\n|[ \t\r\n\f])?|\\v
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7670206

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档