私的良スレ書庫
不明な単語は2ch用語を / 要望・削除依頼は掲示板へ。不適切な画像報告もこちらへどうぞ。 / 管理情報はtwitterでログインするとレス評価できます。 登録ユーザには一部の画像が表示されますので、問題のある画像や記述を含むレスに「禁」ボタンを押してください。
元スレ 1行javascriptプログラミング
JavaScript スレッド一覧へ / JavaScript とは? / 携帯版 / dat(gz)で取得 / トップメニューみんなの評価 :
レスフィルター : (試験中)
javascript:A=document.getElementsByTagName('a');for(i=0;i<A.length;i++)A[i].href=A[i].href.replace(/ime.nu\//g,'');void(0)
こう書けばhttp://ime.nu/ime.nu/www.yahoo.co.jp/みたいにime.nuが2重になってるリンクにも対応できる。
こう書けばhttp://ime.nu/ime.nu/www.yahoo.co.jp/みたいにime.nuが2重になってるリンクにも対応できる。
getElementsByTagName()の使い方がよく分からないので
innerHTMLのほうで作ってみた。
javascript:document.body.innerHTML.replace(/ttp:\/\//g,"http://");
しかし正規表現の使い方が悪いらしくうまく動かない。
/ttp:\/\//
こう書くとhttp://にもマッチしてhhttp://になってしまう。
/[^h]ttp:\/\//
こう書くとhttp://にはマッチしないがttp://の直前の1文字にもマッチして
「あいうえおttp://」が「あいうえhttp://」になってしまう。
行頭にttp://がくるとその行が丸ごと消え去ってしまう。
誰か正しい正規表現を教えてください。
innerHTMLのほうで作ってみた。
javascript:document.body.innerHTML.replace(/ttp:\/\//g,"http://");
しかし正規表現の使い方が悪いらしくうまく動かない。
/ttp:\/\//
こう書くとhttp://にもマッチしてhhttp://になってしまう。
/[^h]ttp:\/\//
こう書くとhttp://にはマッチしないがttp://の直前の1文字にもマッチして
「あいうえおttp://」が「あいうえhttp://」になってしまう。
行頭にttp://がくるとその行が丸ごと消え去ってしまう。
誰か正しい正規表現を教えてください。
まぁまぁ。コピペが楽にはなるし
欲を言えば画像のプレビューが付くと嬉しい
さすがに同じウインドウ上では無理っぽいから新規ウインドウを開く形になるのかな
欲を言えば画像のプレビューが付くと嬉しい
さすがに同じウインドウ上では無理っぽいから新規ウインドウを開く形になるのかな
javascript:alert('>>109 どういう用途でプレビューしたいのよ?')
// どうもうまくいかない…
// 置換には成功しても画像が読み込まれないようで、innerHTMLの罠だろか。
javascript:b=document.body;b.innerHTML=b.innerHTML.replace(/>h?(ttp:\/\/[^>]+?\.jpg)</gi,'><img src="h$1" width=100><');void(0);
// 置換には成功しても画像が読み込まれないようで、innerHTMLの罠だろか。
javascript:b=document.body;b.innerHTML=b.innerHTML.replace(/>h?(ttp:\/\/[^>]+?\.jpg)</gi,'><img src="h$1" width=100><');void(0);
そのURL入れると画像が表示されるよ!! あんた天才
ただ、画像の数だけ入れ直さないといけないみたい
ただ、画像の数だけ入れ直さないといけないみたい
>>118
forでまわし味噌
forでまわし味噌
javascript:alert(">>118 え、gが効かないってこと?");
javascript:b=document.body;b.innerHTML=b.innerHTML.replace(/h?(ttp:\/\/[a-zA-Z0-9.$,;:&=?!*~@#_()%/'+-]+?\.(jp(e|)g|gif|png))/gi,'<img src="h$1" width=100>');void(0);
これでどうだ。
これでどうだ。
あー、リンクが壊れてますね。ttp:でしかテストしてなかったです。
属性値にはマッチしないようにしないといけなかったのですね。
属性値にはマッチしないようにしないといけなかったのですね。
javascript:b=document.body;b.innerHTML=b.innerHTML.replace(/(<[^>]+>)h?(ttp:\/\/[a-zA-Z0-9.$,;:&=?!*~@#_()%/'+-]+?\.(jp(e|)g|gif|png))/gi,'$1<img src="h$2" width=100>');void(0);
これはどうでしょう。
これはどうでしょう。
javascript:b=document.body;b.innerHTML=b.innerHTML.replace(/(<[^>]+>[^<]*?)h?(ttp:\/\/[a-zA-Z0-9.$,;:&=?!*~@#_()%/'+-]+?\.(jp(e|)g|gif|png))/gi,'$1<img src="h$2" width=100>');void(0);
さらに改造。
さらに改造。
>>124-125
完璧だ。すごいね。
完璧だ。すごいね。
>137
数字まで全角だと無理か
数字まで全角だと無理か
これだけなら動くんだがな。
javascript:ih=(b=(d=document).body).innerHTML;nz=new RegExp("(>[0123456789]+)","g");
while(ih.search(nz)!=-1){for(nn=n=RegExp.$1,i=0;i<10;i++)n=n.replace(new RegExp(["0","1","2","3","4","5","6","7","8","9"][i],"g"),i);
ih=ih.replace(nn,n);};b.innerHTML=(ih.replace(/>(\d+)/g,"<a href=$1 target=_blank>>>$1</a>")).replace(/<DT>(\d+)((.|\n)*?<DD)/g,"<DT id=res$1>$1$2 id=d$1");eval();
document.onmouseover=function(){};
入れると動かね。ナゼだ?
javascript:ih=(b=(d=document).body).innerHTML;nz=new RegExp("(>[0123456789]+)","g");
while(ih.search(nz)!=-1){for(nn=n=RegExp.$1,i=0;i<10;i++)n=n.replace(new RegExp(["0","1","2","3","4","5","6","7","8","9"][i],"g"),i);
ih=ih.replace(nn,n);};b.innerHTML=(ih.replace(/>(\d+)/g,"<a href=$1 target=_blank>>>$1</a>")).replace(/<DT>(\d+)((.|\n)*?<DD)/g,"<DT id=res$1>$1$2 id=d$1");eval();
document.onmouseover=function(){};
入れると動かね。ナゼだ?
修正キボン < 暇人
javascript:ih=(b=(d=document).body).innerHTML;while(ih.search(/(>[0123456789]+)/)!=-1){for(nn=n=RegExp.$1,i=0;i<10;i++)n=n.replace(new RegExp(["0","1","2","3","4","5","6","7","8","9"][i],"g"),i);ih=ih.replace(nn,n);};
b.innerHTML=(ih.replace(/>(\d+)/g,"<a href=$1 target=_blank>>>$1</a>")).replace(/<DT>(\d+)((.|\n)*?<DD)/g,"<DT id=res$1>$1$2 id=d$1");
d.onmouseover=function(){if(e=event.srcElement,x=e.innerText,e.tagName=="A"&&x.match(/^>*(\d+)/)){l=RegExp.$1;
eval("if(d.all.item('d"+l+"')){s=d"+l+".innerText.split('\\n');if(s.length>23)s.length=23;e.title=res"+l+".innerText+'\\n'+s.join('\\n');e.target='';e.href='#res"+l+"';}");}};eval();
javascript:ih=(b=(d=document).body).innerHTML;while(ih.search(/(>[0123456789]+)/)!=-1){for(nn=n=RegExp.$1,i=0;i<10;i++)n=n.replace(new RegExp(["0","1","2","3","4","5","6","7","8","9"][i],"g"),i);ih=ih.replace(nn,n);};
b.innerHTML=(ih.replace(/>(\d+)/g,"<a href=$1 target=_blank>>>$1</a>")).replace(/<DT>(\d+)((.|\n)*?<DD)/g,"<DT id=res$1>$1$2 id=d$1");
d.onmouseover=function(){if(e=event.srcElement,x=e.innerText,e.tagName=="A"&&x.match(/^>*(\d+)/)){l=RegExp.$1;
eval("if(d.all.item('d"+l+"')){s=d"+l+".innerText.split('\\n');if(s.length>23)s.length=23;e.title=res"+l+".innerText+'\\n'+s.join('\\n');e.target='';e.href='#res"+l+"';}");}};eval();
そうか、文字数制限か。
もう少しスマートなアルゴリズム考えてくるわ。1行に出来るくらいの。
とりあえずは2回貼りヴァージョンで勘弁。
一貼り目::
javascript:ih=(b=(d=document).body).innerHTML;nz=new RegExp("(>[0123456789]+)","g");while(ih.search(nz)!=-1){for(nn=n=RegExp.$1,i=0;i<10;i++)n=n.replace(new RegExp(["0","1","2","3","4","5","6","7","8","9"][i],"g"),i);
ih=ih.replace(nn,n);};b.innerHTML=(ih.replace(/>(\d+)/g,"<a href=$1 target=_blank>>>$1</a>")).replace(/<DT>(\d+)((.|\n)*?<DD)/g,"<DT id=res$1>$1$2 id=d$1");eval();
二貼り目::
javascript:(d=document).onmouseover=function(){if(e=event.srcElement,x=e.innerText,e.tagName=="A"&&x.match(/^>*(\d+)/)){l=RegExp.$1;eval("if(d.all.item('d"+l+"')){s=d"+l+".innerText.split('\\n');
if(s.length>23)s.length=23;e.title=res"+l+".innerText+'\\n'+s.join('\\n');e.target='';e.href='#res"+l+"';}");}};eval();
もう少しスマートなアルゴリズム考えてくるわ。1行に出来るくらいの。
とりあえずは2回貼りヴァージョンで勘弁。
一貼り目::
javascript:ih=(b=(d=document).body).innerHTML;nz=new RegExp("(>[0123456789]+)","g");while(ih.search(nz)!=-1){for(nn=n=RegExp.$1,i=0;i<10;i++)n=n.replace(new RegExp(["0","1","2","3","4","5","6","7","8","9"][i],"g"),i);
ih=ih.replace(nn,n);};b.innerHTML=(ih.replace(/>(\d+)/g,"<a href=$1 target=_blank>>>$1</a>")).replace(/<DT>(\d+)((.|\n)*?<DD)/g,"<DT id=res$1>$1$2 id=d$1");eval();
二貼り目::
javascript:(d=document).onmouseover=function(){if(e=event.srcElement,x=e.innerText,e.tagName=="A"&&x.match(/^>*(\d+)/)){l=RegExp.$1;eval("if(d.all.item('d"+l+"')){s=d"+l+".innerText.split('\\n');
if(s.length>23)s.length=23;e.title=res"+l+".innerText+'\\n'+s.join('\\n');e.target='';e.href='#res"+l+"';}");}};eval();
一貼り目を短くしてみました。
javascript:ih=(b=(d=document).body).innerHTML;k="0123456789".split("");while(ih.search(/(>[0-9]+)/g)!=-1){for(nn=n=RegExp.$1,i=0;i<10;i++)n=n.replace(new RegExp(k[i],"g"),i);
ih=ih.replace(nn,n);};b.innerHTML=(ih.replace(/>(\d+)/g,"<a href=$1 target=_blank>>>$1</a>")).replace(/<DT>(\d+)((.|\n)*?<DD)/g,"<DT id=res$1>$1$2 id=d$1");eval();
javascript:ih=(b=(d=document).body).innerHTML;k="0123456789".split("");while(ih.search(/(>[0-9]+)/g)!=-1){for(nn=n=RegExp.$1,i=0;i<10;i++)n=n.replace(new RegExp(k[i],"g"),i);
ih=ih.replace(nn,n);};b.innerHTML=(ih.replace(/>(\d+)/g,"<a href=$1 target=_blank>>>$1</a>")).replace(/<DT>(\d+)((.|\n)*?<DD)/g,"<DT id=res$1>$1$2 id=d$1");eval();
とりあえずここまで短くなった。
あと35文字だ。ガンガレ。
javascript:ih=(b=(d=document).body).innerHTML;k="0123456789".split("");while(ih.search(/(>[0-9]+)/g)!=-1){for(nn=n=RegExp.$1,i=0;i<10;i++)n=n.replace(new RegExp(k[i],"g"),i);
ih=ih.replace(nn,n);};b.innerHTML=(ih.replace(/>(\d+)/g,"<a href=$1 target=_blank>>>$1</a>")).replace(/<DT>(\d+)((.|\n)*?<DD)/g,"<DT id=res$1>$1$2 id=d$1");
d.onmouseover=function(){if((e=event.srcElement).tagName=="A"&&e.innerText.match(/^>*(\d+)/)){l=RegExp.$1;e.setAttribute("title",(g=d.getElementById)("res"+l).innerText+g("d"+l).innerText);}};eval();
あと35文字だ。ガンガレ。
javascript:ih=(b=(d=document).body).innerHTML;k="0123456789".split("");while(ih.search(/(>[0-9]+)/g)!=-1){for(nn=n=RegExp.$1,i=0;i<10;i++)n=n.replace(new RegExp(k[i],"g"),i);
ih=ih.replace(nn,n);};b.innerHTML=(ih.replace(/>(\d+)/g,"<a href=$1 target=_blank>>>$1</a>")).replace(/<DT>(\d+)((.|\n)*?<DD)/g,"<DT id=res$1>$1$2 id=d$1");
d.onmouseover=function(){if((e=event.srcElement).tagName=="A"&&e.innerText.match(/^>*(\d+)/)){l=RegExp.$1;e.setAttribute("title",(g=d.getElementById)("res"+l).innerText+g("d"+l).innerText);}};eval();
とっつぁん。。。やったぜ。1行(508文字)になったぜ。
真っ白に燃え尽きた・・・・
javascript:h=(b=(d=document).body).innerHTML;k="0123456789".split("");while(h.search(/(>[0-9]+)/g)!=-1){m=n=RegExp.$1;i=10;while(i--)n=n.replace(new RegExp(k[i],"g"),i);h=h.replace(m,n);};
b.innerHTML=(h.replace(/>(\d+)/g,"<a href=$1>>>$1</a>")).replace(/<DT>(\d+)((.|\n)*?<DD)/g,"<DT id=res$1>$1$2 id=d$1");d.onmouseover=function(){if((e=event.srcElement).tagName=="A"&&e.innerText.match(/^>*(\d+)/)){
l=RegExp.$1;e.setAttribute("title",d.all("res"+l).innerText+d.all("d"+l).innerText);}};eval()
真っ白に燃え尽きた・・・・
javascript:h=(b=(d=document).body).innerHTML;k="0123456789".split("");while(h.search(/(>[0-9]+)/g)!=-1){m=n=RegExp.$1;i=10;while(i--)n=n.replace(new RegExp(k[i],"g"),i);h=h.replace(m,n);};
b.innerHTML=(h.replace(/>(\d+)/g,"<a href=$1>>>$1</a>")).replace(/<DT>(\d+)((.|\n)*?<DD)/g,"<DT id=res$1>$1$2 id=d$1");d.onmouseover=function(){if((e=event.srcElement).tagName=="A"&&e.innerText.match(/^>*(\d+)/)){
l=RegExp.$1;e.setAttribute("title",d.all("res"+l).innerText+d.all("d"+l).innerText);}};eval()
いや、右辺でデクリメントしているから0-9まで回るやん。
てことで>>147が完成形ってことでオケーっしょ。
てことで>>147が完成形ってことでオケーっしょ。
類似してるかもしれないスレッド
- [JavaScript]プログラム作成します (981) - [43%] - 2010/12/8 21:02
- 【jQuery】JavaScript ライブラリ総合質問所 vol.1 (983) - [30%] - 2012/10/8 22:30
- 【jQuery】JavaScript ライブラリ総合質問所 vol.2 (986) - [30%] - 2013/5/20 7:00
- 【jQuery】JavaScript ライブラリ総合質問所 vol.3 (1001) - [30%] - 2014/6/18 20:58 △
トップメニューへ / →のくす牧場書庫について