+ JavaScript の質問用スレッド vol.69 +
>>951 2chブラウザならwebアプリなら1日もかからない件
>>953 iframeで実装すれば1分で終わる件
「PHPできます」と履歴書に書くとマイナスとかなんとか
949がPHP6の開発に取り組むようです
PGP最強
958 :
Name_Not_Found:2009/04/13(月) 14:20:30 ID:OKteWAxm
>>953 すげーな。
●とかbeとか、既読とかお気に入りとか、俺は一日じゃ無理だわ。
>>958 そんな機能で足踏みするようならレベルが低杉
>>960 XPCOM関連でしょ、アドオンとかそっち用。
Englishに変えたら
〜.fileList[0]が〜.files[0]になってた、誰か更新してあげてよ
>>941 Mozilla Developer Center
>>945 ==には比較の決まりがある。
その決まりに当てはまらないときはfalseと判定される。
0==null と ""==null は決まりに当てはまらないのでfalseになる。
nullは特別な値であって、未定義値と比較されるとtrueになる。
0=="" は次のような決まりがある。
まず数値と文字列が比較されたとき、文字列側が数値に変換される。
JavaScriptの暗黙的自動型変換によって、空文字列は0に変換される。
そして変換後比較したとき 0==0 となりtrueになる。
>>962 試しにfiles[0]にしてみたら動くじゃねーかwwww
$=function(e){return document.getElementById(e)};
for(i=0;i<5;i++){
$("test"+i).onclick = function (){alert(i)}
}
このように書いたのですがalertが全部5になります。
違う値を入れるにはどうしたら良いのでしょうか。
この例ではiは5までですが実際は可変です
>>967 for(…) { …} を
for(…) function(i) { … }(i); と書き換えるだとか。
しかし、それはJavaScriptでは基本中の基本。
あなたには「JavaScript The Good Parts」を一読することを勧める。
$("test"+i).onclick = function (){alert(+this.id.slice(4))}
C#のフォームから下記のScriptを記入したローカルHTMLを読み込み
内部のfunctionをInvokeScriptから実行しているのですが
まず下のようなシンプルなもので試したところきちんと値が戻ってきたのですが
function test(text)
{
return("return:" + text);
}
returnの前に
var geocoder;
geocoder = new GClientGeocoder();
を追加するとGClientGeocoderが宣言されていないというスクリプトエラーが出ます
これの解決策はどうすればいいのでしょうか?
GClientGeocoderを宣言する
>>973 スレ誘導感謝します
お目汚し失礼しました
>>975 これたびたびスレで勧めてる人がいるけど
サイ本持ってる人間が読む価値ある?
>>976 十分あると思うよ。
サイ本よりはJavaScriptの良いところがわかりやすく解説されてる。
ベストプラクティスっぽいと思う。
本は知らんが、ブログはなんか気持ち悪い。
>>976 書いたのは ECMAScript 5 作業チーム 兼 Yahoo! のなかのひと
ECMAScript 5 仕様に関する記述もある
たとえば The Good Parts の 6.5 を読むと、どうして ECMAScript 5 に Array.isArray (15.4.3.2) が追加されたかがわかる
>>975 まったく弾は朝っぱらから宣伝ですかw
しかもアフィページに誘導www
var obj = document.getElementById('hoge');
var grep = new RegExp(obj.value, 'i');
<input id="hoge" type="text">から受け取った値を、
内部で照会するようなプログラムを作っているのですが、
*や+など正規表現で使用する記号等が入力されるとエラーが出てしまいます。
何か簡単な解決方法はないでしょうか?
当たり前じゃん
RegExpに突っ込む前に、バックスラッシュでエスケープするように置き換えとけ
983 :
981:2009/04/14(火) 11:40:36 ID:???
>>982 そのような処理をする関数は存在しませんか?
JavaScriptの正規表現に使用する全ての記号がわからないので、
1発で処理可能な関数があれば知りたかったのですが。
大文字小文字無視したいだけなら、toLowerCaseして、indexOfとかすればいいやん。
>>984 ありがとうございます。
早速調べてみます。
textfieldで扱う文字数が5000文字くらいあったら正規表現とtoLowerCaseのどちらを選ぶべき?
メモリ使用量みながらベンチとりなサーイ
いやです
5000文字程度なら気にする程のことないだろ。
>>983 MooTools 1.2
escapeRegExp: function(){
return this.replace(/([-.*+?^${}()|[\]\/\\])/g, '\\$1');
}
Prototype.js 1.6.0
RegExp.escape = function(str) {
return String(str).replace(/([.*+?^=!:${}()|[\]\/\\])/g, '\\$1');
};
992 :
Name_Not_Found:2009/04/14(火) 16:19:50 ID:TlbL8BxH
>>986 5000字あるかどうか分からないけど、一般的なブログのトップページ全体から
ある特定の文字列数種を探してspan要素で括る、っていうのを
正規表現置換でやったことがあるけど、十分短い時間で済んだよ。
文字数が多ければ多いほど遅くなるのはtoLowerCaseのほう。
>>993 ここで比較するべきはindexOf。それともindexOfが遅い?
phpのmicrotime(true)とかjavaのSystem.currentTimeMillis()みたいのがあればな
javascriptはこの前はじめたばっかだからよくしらぬ
>>995 new Date().getTime()
つか、このスレ内にも時間計測やってる例が出てると思うが
それくらい探してから書き込んでもバチはあたらないのでは。
関数リテラルは囲まなくていいよ
1001 :
1001:
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。