MW211 EXIT

devlog
CSS/IEのfieldsetの背景色
2014年02月04日
IE8以前の場合、fieldsetの背景色が枠線をはみ出るというバグがあった。

若干見栄えが悪いだけで致命的な問題ではないので、
時が過ぎる(新型IEが主流になる)のを待つのが賢明かと思われるが
そうも言っていられない場合の悪あがき方法。

以下のように、legendタグをabsoluteにして浮かせた形にしてしまう。
┌──────────────────────────────────────┐
│fieldset {                                                                  │
│    position            :relative;                                          │
│    padding-top         :0.75em;                                            │
│    margin-top          :0.5em;                                             │
│    background-color    :#CCCCCC;                                           │
│}                                                                           │
│legend {                                                                    │
│    position            :absolute;                                          │
│    top                 :-0.5em;                                            │
│    left                :0.5em;                                             │
│    background-color    :#FFFFFF;                                           │
│}                                                                           │
└──────────────────────────────────────┘
分類:CSS
正規表現/文字列の否定(3)文字単位での比較
2014年02月03日
文字列の否定は難しい。その文字列以外の文字をすべて該当されるのを模索中。
やっぱり、先読み・後読みができないとき厳しい。

先読み・後読みができれば、以下でいいのではないだろうか。
┌──────────────────────────────────────┐
│(?<!a)b|^b|a(?!b)|a$|[^ab]
└──────────────────────────────────────┘
#確かめてはいないが。。。

先読み・後読みができないとなると…。

┌──────────────────────────────────────┐
│a+[^ab]+b*|[^ab]+b+|a+(?!b)|a$|^b|[^ab]                                     │
└──────────────────────────────────────┘
上記の場合「aab」と「abb」の余分な部分がヒットしない。
分類:正規表現
正規表現/文字列の否定(2)行単位での比較
2014年02月02日
文字列の否定は難しいと述べたが、まずは行にその文字列が含まれるかを
判定する正規表現はわりと簡単にできる。
「^(?!.*文字列).*$」でOK。

先読み((?!)など)の場合、文字列が使えるので、これを利用する。

整理すると以下の通り。

「a」を含まない行。
┌──────────────────────────────────────┐
│^[^a]*$                                                                     │
└──────────────────────────────────────┘

「a」も「b」も含まない行。
┌──────────────────────────────────────┐
│^[^ab]*$                                                                    │
├──────────────────────────────────────┤
│^[^(a|b)]*$                                                                 │
│^[^(ab)]*$                                                                  │
└──────────────────────────────────────┘

「ab」を含まない行。
┌──────────────────────────────────────┐
│^(?!.*ab).*$                                                                │
└──────────────────────────────────────┘
分類:正規表現
正規表現/文字列の否定(1)
2014年02月01日
「ab」とかいう(連続する)文字列を除くという正規表現は実は難しい。

┌──────────────────────────────────────┐
│(ab|cd)                                                                     │
└──────────────────────────────────────┘
上記みたいに、括弧で囲えば文字列として認識してくれるのだから、
さぞ簡単かと思うが、以下のような指定は効かない。
┌──────────────────────────────────────┐
│[^(ab)]                                                                     │
└──────────────────────────────────────┘

以下と同じにみなされてしまう。
┌──────────────────────────────────────┐
│[^ab]                                                                       │
└──────────────────────────────────────┘

では、解決方法は?…難しい。
分類:正規表現
前へ 1 2 3 次へ