のくす牧場
コンテンツ
牧場内検索
カウンタ
総計:127,062,831人
昨日:no data人
今日:
最近の注目
人気の最安値情報

    私的良スレ書庫

    不明な単語は2ch用語を / 要望・削除依頼は掲示板へ。不適切な画像報告もこちらへどうぞ。 / 管理情報はtwitter
    ログインするとレス評価できます。 登録ユーザには一部の画像が表示されますので、問題のある画像や記述を含むレスに「禁」ボタンを押してください。

    元スレ+ JavaScript の質問用スレッド vol.75 +

    JavaScript スレッド一覧へ / JavaScript とは? / 携帯版 / dat(gz)で取得 / トップメニュー
    スレッド評価: スレッド評価について
    みんなの評価 :
    タグ : 追加: タグについて ※前スレ・次スレは、スレ番号だけ登録。駄スレにはタグつけず、スレ評価を。荒らしタグにはタグで対抗せず、タグ減点を。
    レスフィルター : (試験中)
    ←前へ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 次へ→ / 要望・削除依頼は掲示板へ / 管理情報はtwitter
    401 : Name_Not - 2009/12/17(木) 14:58:41 ID:??? (+12,-15,-40)
    正規表現は一部にもマッチする
    全体にマッチさせたいときは^と$を使う
    くやしい使い方は正規表現でググってね
    402 : Name_Not - 2009/12/17(木) 15:45:09 ID:??? (-2,-30,-37)
    var x=/[a-z]/g, y;
    while((y = x.exec("ans=no")) alert(y);

    でどんな風にマッチしてるか見ろ
    403 : Name_Not - 2009/12/17(木) 16:59:56 ID:??? (+57,+29,-20)
    くやしい使い方… なかなか斬新な表現だね。
    404 : Name_Not - 2009/12/17(木) 17:01:40 ID:??? (+52,+29,-5)
    揚げ足取りは楽しいかい?
    405 : Name_Not - 2009/12/17(木) 17:06:46 ID:??? (+17,-18,-2)
    >>399
    gつきでtestは色々面倒だからやめれ
    http://d.hatena.ne.jp/uupaa/20090702/1246531769
    406 : Name_Not - 2009/12/17(木) 18:11:34 ID:??? (+0,-29,-9)
    >>399
    ans=no に a-z が含まれてるから

    じゃない?
    407 : Name_Not - 2009/12/17(木) 18:45:48 ID:??? (+9,-30,-202)
    >>405
    g フラグ付きの test() がどうとかは関係ない。
    g フラグの指定された同一の RegExp オブジェクトに対して
    String オブジェクトの replace() メソッドを続けて実行しているのが原因。

    String のメソッドは lastIndex プロパティを使用しないけれども、
    このときに RegExp オブジェクトの lastIndex を 0 に再設定するかしないかで挙動が分かれているだけ。

    要するに g フラグを指定した同一の RegExp オブジェクトに対して、RegExp のメソッドを使用した後、
    String オブジェクトのメソッドに引数として渡すと挙動が変わるということ。
    408 : Name_Not - 2009/12/17(木) 19:43:25 ID:??? (-1,-29,+0)
    test()だけなら gフラグいらないような
    409 : Name_Not - 2009/12/17(木) 23:07:29 ID:??? (+62,+29,-66)
    >>397
    カーネル時間使いまくりの強力なブラクラだなwww
    最初30000でやったら泣きたくなって、IE殺すのにも一苦労したわ。

    オレのPCのスペックじゃ10000ぐらいが限界だった。
    それ以上は怖くて増やせない。
    410 : Name_Not - 2009/12/17(木) 23:35:22 ID:??? (+0,-29,-42)
    >>407
    ECMAScript5でこのへんの仕様かわるんだっけか
    正規表現リテラルが状態を持たないようになるとか
    411 : Name_Not - 2009/12/18(金) 03:48:58 ID:??? (+7,-29,-186)
    >>397
    10000未満で死ぬWin7+IE8の環境だったが、古典的な
    タイマー呼びすぎ対策の「clearTimeout+setTimeout」を
    セットで使えば、安定して30000まで全部出るようになった。

    IE8の開発者ツールのデバッガ使うと100%死ぬし、その死ぬ
    PCでも仮想環境のIE6から開くと重いけど30000まで全部出るし、
    個体ごとの環境で色々挙動が違って不思議だ。
    412 : 411 - 2009/12/18(金) 08:12:18 ID:??? (+63,+30,+0)
    setTimeoutには発行数に上限があるかどうか確認したいのに、
    clearTimeoutで毎回解除してしまったら意味がなかった orz

    描画の更新間隔を負荷が低い1秒おき程度にしても1万足らずで
    止まるPCもあれば、何の役にも立たない構文エラーを吐きつつも
    30000まで完走するPCもあったり、やはりIEは挙動が不安定だ。
    Safari4は後半でペースががた落ちするけど完走するタイプだった。

    複数のPCで試したけどIEの傾向として、タイマーで処理が詰まる
    古い環境の方は最後まで完走し、順調にタイマー処理が進むくらい
    リソースに余裕がある環境だと10000足らずで止まる感じだった。

    IE6が最初「応答なし」で詰まりまくっても、結局最後まで表示し
    終えるのは、ループ内などで描画を詰まらせると途中の描画を
    手抜きして最後だけ描画する仕様だからかもしれない。でも、
    負荷の低そうなステータスバーに中身を表示する方法でも
    最初のうちは応答なしで固まって、タイマー間隔がゆるむ頃から
    普通に処理が進んで完走してたから不思議だ。
    414 : Name_Not - 2009/12/18(金) 10:00:47 ID:??? (+47,+24,-15)
    普通に使い回せるだろ
    415 : Name_Not - 2009/12/19(土) 00:04:51 ID:??? (+55,+27,-22)
    チェックボックスにチェックをいれるとフォームを書き換えるということをしたいのですが、どのようにすれば良いのでしょうか。

    416 : Name_Not - 2009/12/19(土) 00:28:14 ID:??? (-1,-29,-14)
    onClickイベントで何とかなる・・・ようですね。
    すいませんでした。
    417 : Name_Not - 2009/12/19(土) 06:30:08 ID:??? (+64,+29,-25)
    >>399
    Javaなら、予測通りの動作をする。
    しかし、名前を似せる位なら、正規表現の動作も
    JavaとJavaScriptで同じにしてくれてもいいのにね。
    418 : Name_Not - 2009/12/19(土) 08:44:51 ID:??? (+18,-30,-145)
    >>399 がgフラグの意味を誤解していると思われ。
    gフラグはマッチを制御するためのものでなく、置き換えを
    行う時にそれを1回でやめずに繰り返せるようにするためのもの。
    echo 'abc=true' | sed 's/[a-z]/x/g' ===> xxx=xxxx
    echo 'abc=true' | sed 's/[a-z]/x/' ===> xbc=true
    で、Javaで >>399 が期待するように動作するというのはよく分からん。
    Patternと文字列からMatcherを作って反復して呼ぶと隣接していない
    マッチ区間を見つけることができるとかいう意味?そんな面倒なコード
    書くなら何だってできそうだが…
    419 : Name_Not - 2009/12/19(土) 13:38:25 ID:??? (+20,-29,-56)
    /e/という正規表現が文字列全体に渡り繰り返し隙間なくあてはまる
    かどうかを調べるには/^(e)+$/という正規表現のマッチを見れば
    よいわけで。
    420 : Name_Not - 2009/12/19(土) 13:51:53 ID:??? (+9,-30,-206)
    >>418
    > 置き換えを行う時にそれを1回でやめずに繰り返せるようにするため
    置換、つまりreplaceだけで使えるわけじゃないぞ

    String.prototype.matchでも使うし、RegExp.prototype.execも解釈を変える
    http://www2u.biglobe.ne.jp/~oz-07ams/prog/ecma262r3/15-5_String_Objects.html#section-15.5.4.10
    http://www2u.biglobe.ne.jp/~oz-07ams/prog/ecma262r3/15-10_RegExp_Objects.html#section-15.10.6.2

    >>399
    Javaの該当メソッドとJavaScriptのRegExp.prototype.testのアルゴリズムは一致してるのか?
    一致していなければ、単にJava側の仕様ってだけの話
    結果が違っていて当然

    > JavaとJavaScriptで同じにしてくれてもいいのにね。
    まったく同意できん
    似てるのは名前だけだと小一時間(ry
    421 : Name_Not - 2009/12/19(土) 14:02:08 ID:??? (+38,+12,-1)
    >>419
    え?
    422 : Name_Not - 2009/12/19(土) 14:45:03 ID:??? (+38,-24,-14)
    正規表現は Perl 由来だし。
    423 : Name_Not - 2009/12/19(土) 15:22:20 ID:??? (+0,-27,+0)
    もうLiveScriptに名前戻そう
    424 : Name_Not - 2009/12/19(土) 15:29:41 ID:??? (-6,-29,+0)
    ECMAScriptでいいじゃん。
    425 : Name_Not - 2009/12/19(土) 15:30:53 ID:??? (-6,-29,+0)
    ACMEScript
    426 : Name_Not - 2009/12/19(土) 15:35:54 ID:??? (+42,+12,-1)
    >>422
    え?
    427 : Name_Not - 2009/12/19(土) 15:41:13 ID:??? (+29,+1,-1)
    >>422
    ん?
    428 : Name_Not - 2009/12/19(土) 15:43:26 ID:??? (-6,-29,-1)
    YMCAScript
    429 : Name_Not - 2009/12/19(土) 15:47:37 ID:??? (+3,-29,-26)
    >>426-427
    え?
    JavaScript の正規表現は Perl がモデルじゃないの?
    430 : Name_Not - 2009/12/19(土) 15:49:16 ID:??? (+45,+27,+0)
    そうだよ
    431 : Name_Not - 2009/12/19(土) 17:07:09 ID:??? (+45,+27,+1)
    なにそれこわい
    432 : Name_Not - 2009/12/19(土) 17:41:38 ID:??? (+27,+0,-19)
    正規表現は昔からあったけど、Perlで大幅拡張された、と。
    433 : Name_Not - 2009/12/19(土) 18:53:32 ID:??? (-1,-29,-94)
    で、その拡張された正規表現(の一部)を利用しているので、

    ×正規表現は Perl 由来
    ○javascriptの正規表現は perl の正規表現を利用

    由来は物事の始まりって意味だしな
    434 : Name_Not - 2009/12/19(土) 19:08:16 ID:??? (+8,-19,-33)
    javascriptの正規表現は perl 互換

    が正しいんじゃなかろうか
    435 : Name_Not - 2009/12/19(土) 19:25:10 ID:??? (-3,-29,-18)
    モデル -> 原型 -> original from -> 由来


    どうでもいいけど、間違ってないと思う。
    436 : Name_Not - 2009/12/19(土) 19:37:17 ID:??? (+78,+29,-16)
    どうでもいいけどそろそろ終わりにしないか?
    437 : Name_Not - 2009/12/19(土) 19:38:07 ID:??? (+46,+12,-1)
    >>436
    え?
    438 : Name_Not - 2009/12/19(土) 20:09:48 ID:??? (+53,+29,-35)
    ×どうでもいいけどそろそろ終わりにしないか?
    ○どうでもいいからそろそろ終わりにしないか?
    439 : Name_Not - 2009/12/19(土) 20:14:34 ID:??? (+25,+7,+0)
    終了
    440 : Name_Not - 2009/12/19(土) 20:17:36 ID:??? (+51,+28,+0)
    カップラーメンができたので再開
    441 : Name_Not - 2009/12/19(土) 23:01:43 ID:??? (+95,-30,-138)
    var obj = document.getElementById("result");
    switch(val){
    case 0:
    obj.setAttribute("type","hidden");
    break;
    case 1:
    obj.setAttribute("value","hoge");
    break;
    }

    case 0で終われば動くけどcase 1まで記述すると動きません。
    なぜでしょうか?
    caseの中身に問わず、caseを2つ以上記述すると動かなくなります。
    442 : Name_Not - 2009/12/19(土) 23:10:23 ID:??? (+55,+27,-36)
    case 0 でマッチして break してんじゃないの?
    だいたい動かないスクリプトを貼ってもらっても困る
    443 : Name_Not - 2009/12/19(土) 23:13:25 ID:??? (+57,+29,-32)
    訂正

    ×動かない
    ×動作検証のしようがない

    やりたいことをまず書いた方がいい
    きっと switch じゃないだろう
    444 : Name_Not - 2009/12/19(土) 23:15:28 ID:??? (+66,+29,-38)
    >>441
    動かない最小限の例を作って貼る。嫌ならあきらめる。
    なお、>>441 みたいな断片ではだめで、そっくり動かして
    見られること。
    445 : Name_Not - 2009/12/19(土) 23:28:07 ID:??? (+5,-27,+1)
    >>441
    valの中身を見ろ
    446 : 441 - 2009/12/19(土) 23:28:22 ID:??? (+49,-30,-212)
    要はアップローダを作ってるんです。

    ○これだと動作します。
    var val = Number(document.getElementById("ht").value);
    var str;
    switch(val){
    case 0:
    obj.setAttribute("type","hidden");
    break;
    case 1:
    str = "ファイルサイズオーバー";
    break;
    }

    ×これだと動作しません。(case 1の中身を消しただけ)
    var val = Number(document.getElementById("ht").value);
    var str;
    switch(val){
    case 0:
    obj.setAttribute("type","hidden");
    break;
    case 1:

    break;
    }
    447 : 441 - 2009/12/19(土) 23:31:58 ID:??? (+57,+29,-12)
    失礼、○と×の例が逆でした。
    前者で動かず、後者で動きます。
    448 : Name_Not - 2009/12/19(土) 23:39:28 ID:??? (+77,+28,-3)
    動かないって、何がよ。
    449 : Name_Not - 2009/12/19(土) 23:41:59 ID:??? (+53,+14,-6)
    >>448
    そもそも関数が呼び出されないです。
    同ファイルに他関数が3つありますが、それもダメになってしまいます。
    450 : Name_Not - 2009/12/19(土) 23:45:52 ID:??? (+55,+27,-19)
    とにかく示したコードだけでは問題は特定できないから。
    ←前へ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 次へ→ / 要望・削除依頼は掲示板へ / 管理情報はtwitterで / JavaScript スレッド一覧へ
    スレッド評価: スレッド評価について
    みんなの評価 :
    タグ : 追加: タグについて ※前スレ・次スレは、スレ番号だけ登録。駄スレにはタグつけず、スレ評価を。荒らしタグにはタグで対抗せず、タグ減点を。

    類似してるかもしれないスレッド


    トップメニューへ / →のくす牧場書庫について