素人がプログラミングを勉強していたブログ

プログラミング、セキュリティ、英語、Webなどのブログ since 2008

連絡先: twitter: @javascripter にどうぞ。

2008-04-30から1日間の記事一覧

getElementByAttributeみたいなものを作った

ページが見つかりません | Mozilla Developer Networkを見てふと思いつく。 HTMLElement.prototype.getElementsByAttribute=function(attrib,value){ var xpath='//*[@'+attrib+(value=='*'?'':'="'+value+'"')+']'; var xRes=document.evaluate(xpath,this,…

String.prototype.matchでは正規表現にマッチした結果が配列で返される

RegExp.$1とかを使わなくても、こんな風な使い方ができる。 var str='3.14,1.993,23.3,3' var result=str.match(/\d+\.?\d*(?!,)/g).filter( function(x)parseFloat(x)>2 ) console.log(result); カンマで区切られた数値を正規表現で調べて、filter関数を使…

外部リンクにtarget="_blank"をつける

var $x=function(xpath){ var xpathR=document.evaluate(xpath,document,null,7,null); var result=new Array; for(var i=0;i

何故[]==[]はfalseなのか

追記2:hogeさんのコメントによると、文字列などは特別扱いだから""==""がtrueになるそうです。ということで、下記の説明は文字列や数値には適用できません。追記:あれ、これじゃ''==''がtrueな理由を説明できない。たぶん下記の説明は間違い。 なんで[]==[…

[]==[]はfalse

[]==[]とか、[1,2,3]==[1,2,3]とかは全てfalseなので、配列を比較する場合はこんな関数を用意することにした。 function checkArray(one,two){ if(one.length!=two.length)return false; return one.every(function(x,i)x===two[i]) } checkArray([],[])//tr…