css セレクターの入力文字列を解析する最も効率的な方法は、次の組み合わせを特徴とするものです。
[key=value]
: 属性、0 ~ * インスタンス#id
: ID、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(..)
し、それが進むべき道ですが、私の正規表現の知識は、この状況に対して十分に進んでいるとは言えません。
助けてくれて本当にありがとうございます。