解析css选择器输入字符串的最有效方法是什么,它具有以下任意组合:
[key=value]
: 属性,0 到 * 个实例#id
: ids, 0 到 1 个实例.class
: 类,0 到 * 个实例tagName
:标签名称,0 到 1 个实例(仅在字符串开头找到)
(注意:' *
',或者其他适用的组合符可以用来代替标签?)
如:
div.someClass#id[key=value][key2=value2].anotherClass
进入以下输出:
[' div
',' .someClass
',' #id
',' [key=value]
',' [key2=value2]
',' .anotherClass
']
或者对于奖励积分,有效地转换为这种形式(阅读:一种不仅仅基于使用str[0] === '#'
的方法):
{
tags : ['div'],
classes : ['someClass','anotherClass'],
ids : ['id'],
attrs :
{
key : value,
key2 : value2
}
}
(注意删除# . [ = ]
)
我想象一些正则表达式的组合,并且.match(..)
是要走的路,但是我的正则表达式知识对于这种情况还远远不够先进。
非常感谢您的帮助。