JavaScript/AJAX Archive

英数字が混在しているかどうか、正規表現で判定する

パスワードに英数字がきちんと混在してるかどうかチェックいれてねー。記号は英字と同じ扱いということでよろしく! とか言われたのでどうやって実現するか迷った。

いろいろ調べた結果、ここのエントリーが大変参考になった。
8文字以上で英小文字、英大文字、数字が混在する文字列の判定

http://blogs.wankuma.com/ognac/archive/2008/09/04/155433.aspx

で、結果書いたのがこんなの
/^(?=.*\d)(?=.*[!-/:-~])[!-~]{1,}$/

今のところ意図したとおりに動いてくれている様子。
自分の力だけだと絶対書けなかっただろうなあ・・・。

Safari4でAudio APIを使うときはQuicktime必須。

気がついたら前回の投稿からかなり空いてしまった・・・。

Safari4正式版がリリースされ、HTML5対応が話題になってるのでさっそく触ってみました。

Audio APIに対応したとのことなので、実験コードを書いて見るも音が鳴らず。
なぜ?と思って書いたコードを見直して見るも変なところはない。

しばらくウンウンと悩んだ後、Quicktimeを入れていないことに気づく。
Apple製品だし、もしかしたら再生周りにQuicktimeのコンポーネント使ってるかもしれないと。

案の定その通りだったらしく、Quicktime入れた後は問題なく動くように。

今回書いたコードについては後でアップします。

デュアルディスプレイ環境において画面サイズを取得するときの挙動

JavaScriptを使って利用者の画面サイズ(解像度と呼ぶべきか)を取得できることを知っている人は多いと思います。
よくアクセス解析にあるアレですね。

そこでふと思ったのが、「デュアルディスプレイってどう出るんだろう?」ということ。
私の自宅の環境では、24インチワイドの1920×1200と20インチワイドの1680×1050をデュアルで利用しています。
この場合どう検出されるのか?

dualdisplay_res.jpg

そこで、さっと実験用のスクリプトを書いて試してみました。

<Script language=”JavaScript”>
<!–
//ディスプレイの幅取得
screenWidth = window.screen.width;

//ディスプレイの高さ取得
screenHeight = window.screen.height;

//取得したモニタの幅と高さを書き出す
document.write(“ディスプレイの幅:”+screenWidth+”px ×<BR>ディスプレイの高さ:”+screenHeight+”px”)
//–>
</Script>

実験には手元にあるブラウザ3種類を利用。

1. InternetExplorer6
2. Firefox2.0
3. Safari3.1

結果・・・

1. InternetExplorer6の場合
ウィンドウの位置に関係なく、1920×1200と判定。

2.3 Firefox2.0、Safari3.1の場合
1920×1200のディスプレイにブラウザが入っている時は1920×1200と判定。
1680×1050のディスプレイの時は1680×1050と判定

ブラウザによって判定が異なるようです。IE6の場合、プライマリに指定されているディスプレイのほうが常に表示され、SafariとFirefoxは、今そのウィンドウがあるディスプレイのほうが判定されました。

じゃあFirefoxやSafariが2つのディスプレイをまたいでいるときはどうか?

結果は、FirefoxとSafari両方同じ挙動で
「ハミ出している部分が大きい方が判定される」
でした。
プライマリ側にちょっとでもウィンドウがよっていればプライマリが検出され、セカンダリ側によっていればセカンダリが検出されました。
まあ納得の結果ですね。

IEは7ではまた挙動が異なっている可能性もありますが、手元にすぐ試せる環境がないので未検証です。

ホーム > JavaScript/AJAX

Search
Feeds
Meta

Return to page top