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

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

JavaScript覧 / PC版 /
スレッド評価: スレッド評価について
みんなの評価 :
タグ : 追加: タグについて ※前スレ・次スレは、スレ番号だけ登録。駄スレにはタグつけず、スレ評価を。荒らしタグにはタグで対抗せず、タグ減点を。
←前へ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 次へ→ / 要望・削除依頼は掲示板へ / 管理情報はtwitter

401 = :

正規表現は一部にもマッチする
全体にマッチさせたいときは^と$を使う
くやしい使い方は正規表現でググってね

403 = :

くやしい使い方… なかなか斬新な表現だね。

404 = :

揚げ足取りは楽しいかい?

405 = :

>>399
gつきでtestは色々面倒だからやめれ
http://d.hatena.ne.jp/uupaa/20090702/1246531769

407 = :

>>405
g フラグ付きの test() がどうとかは関係ない。
g フラグの指定された同一の RegExp オブジェクトに対して
String オブジェクトの replace() メソッドを続けて実行しているのが原因。

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

要するに g フラグを指定した同一の RegExp オブジェクトに対して、RegExp のメソッドを使用した後、
String オブジェクトのメソッドに引数として渡すと挙動が変わるということ。

409 = :

>>397
カーネル時間使いまくりの強力なブラクラだなwww
最初30000でやったら泣きたくなって、IE殺すのにも一苦労したわ。

オレのPCのスペックじゃ10000ぐらいが限界だった。
それ以上は怖くて増やせない。

411 = :

>>397
10000未満で死ぬWin7+IE8の環境だったが、古典的な
タイマー呼びすぎ対策の「clearTimeout+setTimeout」を
セットで使えば、安定して30000まで全部出るようになった。

IE8の開発者ツールのデバッガ使うと100%死ぬし、その死ぬ
PCでも仮想環境のIE6から開くと重いけど30000まで全部出るし、
個体ごとの環境で色々挙動が違って不思議だ。

412 = :

setTimeoutには発行数に上限があるかどうか確認したいのに、
clearTimeoutで毎回解除してしまったら意味がなかった orz

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

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

IE6が最初「応答なし」で詰まりまくっても、結局最後まで表示し
終えるのは、ループ内などで描画を詰まらせると途中の描画を
手抜きして最後だけ描画する仕様だからかもしれない。でも、
負荷の低そうなステータスバーに中身を表示する方法でも
最初のうちは応答なしで固まって、タイマー間隔がゆるむ頃から
普通に処理が進んで完走してたから不思議だ。

414 = :

普通に使い回せるだろ

415 = :

チェックボックスにチェックをいれるとフォームを書き換えるということをしたいのですが、どのようにすれば良いのでしょうか。

417 = :

>>399
Javaなら、予測通りの動作をする。
しかし、名前を似せる位なら、正規表現の動作も
JavaとJavaScriptで同じにしてくれてもいいのにね。

418 = :

>>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 = :

/e/という正規表現が文字列全体に渡り繰り返し隙間なくあてはまる
かどうかを調べるには/^(e)+$/という正規表現のマッチを見れば
よいわけで。

420 = :

>>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 = :

>>419
え?

422 = :

正規表現は Perl 由来だし。

423 = :

もうLiveScriptに名前戻そう

426 = :

>>422
え?

427 = :

>>422
ん?

429 = :

>>426-427
え?
JavaScript の正規表現は Perl がモデルじゃないの?

430 = :

そうだよ

431 = :

なにそれこわい

432 = :

正規表現は昔からあったけど、Perlで大幅拡張された、と。

434 = :

javascriptの正規表現は perl 互換

が正しいんじゃなかろうか

436 = :

どうでもいいけどそろそろ終わりにしないか?

437 = :

>>436
え?

438 = :

×どうでもいいけどそろそろ終わりにしないか?
○どうでもいいからそろそろ終わりにしないか?

439 = :

終了

440 = :

カップラーメンができたので再開

441 = :

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 = :

case 0 でマッチして break してんじゃないの?
だいたい動かないスクリプトを貼ってもらっても困る

443 = :

訂正

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

やりたいことをまず書いた方がいい
きっと switch じゃないだろう

444 = :

>>441
動かない最小限の例を作って貼る。嫌ならあきらめる。
なお、>>441 みたいな断片ではだめで、そっくり動かして
見られること。

445 = :

>>441
valの中身を見ろ

446 = :

要はアップローダを作ってるんです。

○これだと動作します。
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 = :

失礼、○と×の例が逆でした。
前者で動かず、後者で動きます。

448 = :

動かないって、何がよ。

449 = :

>>448
そもそも関数が呼び出されないです。
同ファイルに他関数が3つありますが、それもダメになってしまいます。

450 = :

とにかく示したコードだけでは問題は特定できないから。


←前へ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 次へ→ / 要望・削除依頼は掲示板へ / 管理情報はtwitterで / JavaScript一覧へ
スレッド評価: スレッド評価について
みんなの評価 :
タグ : 追加: タグについて ※前スレ・次スレは、スレ番号だけ登録。駄スレにはタグつけず、スレ評価を。荒らしタグにはタグで対抗せず、タグ減点を。

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


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