Recognize HTML tag attributes
See console!
- key=value を書く時、key(whitespaces)=(whitespaces)value のように=の前後に(whitespace)があってもよい。
- key のみでvalueがない場合は、key='' と解釈される。
- valueは、'...' か "..." か 「囲みなし」の文字列で表現される。
- "...\"..." と '...\'...' は間違ったescapeの方法である。正しいescapeは"..."..." と '...'...'
- "...>..." のように、ストリング中に > があってもタグの終わりにはならない。
- keyには、文字以外にも、ほとんどのコントロールcharが使える。使えないのは、> だが、= と / は要注意。
- = と / は非常にトリッキー
- = はkeyになれるが、注意が必要。
- a=aaa =v b=bbb は a='aaa' v='' b='bbb'と解釈される。
- a=aaa v= b=bbb は a='aaa' v='b=bbb'と解釈される。
- 単独の / は、あたかも存在しないように無視される。しかし separator としては動作するので、/ は whitespace と考えるとよい。
例えば、/x/y/z は x='' y='' z='' と解釈される。
- a="bbb>ccc" のように"..."内なら、 > は書ける。しかし、a=bbb>ccc のように、"で囲まない場合は、> がタグの終わりになる。
- "aaa"="bbb" のようにKeyを " で囲んでも、「aaa」がKeyになるのではなく、「"abc"」のように、"" を含んだ文字列がKeyになる。
- "aa>a"="bbb" の場合、「"aa」がKeyになり、>でタグのおわりになる。
[1]
<span id = t1 aaa = bb b ccc
= ddd disabled></span>
[2]
<span id=t2 a='aaa' b="bbb" c='cc'cc' d="dd"dd"></span>
[3]
<span id=t3 a='123>456f' b="opq"></span>
[4]
<span id=t4 あいうえお='123' 漢字="xyz"></span>
[5]
<span id=t5 ~`!@#$%^&*()-_+{}[]|\:;"'?<:.,="xyz"></span>
[6]
<span id=t6 a=aaa = b=bbb></span>
[7]
<span id=t6b a=aaa =v b=bbb></span>
[8]
<span id=t6c a=aaa v= b=bbb></span>
[9]
<span id=t7 a=aaa / b=bbb></span>
[10]
<span id=t8 a=aaa ///=/// b=bbb></span>
[11]
<span id=t9 a=aaa /x/y/z b=bbb></span>