ページ 11

【Tips】豆知識等のスレッド

Posted: 2011年1月27日(木) 20:14
by Ciel
このスレは、知ってると役に立つ情報や豆知識などを書き込むスレッドです。

私がこのスレを立てた目的は備忘録をどこかに残したいなという気持ちと、
皆が困ったときに少しでも役に立てたらなと思いこのスレッドを立てました。

どんなマニアックなものでもいいので、自分が知ってる豆知識などありましたら、
どんどん書き込んで下さい。

Re: 【Tips】豆知識等のスレッド

Posted: 2011年1月27日(木) 20:21
by Ciel
JavaScript関連より。

正規表現のマッチングにおいて、変数を利用する方法を載せておきます。

いつも私がマッチングをするときは、str.matchを使って直接正規表現を指定してたんですが、
面倒と思って関数で渡して結果を返してもらおうと思いまして。

ですが、今まで通りのstr.matchを使うと,
str.match("<"+tag+">");
のような書き方でしかかけず、オプションのgとかiとかが付けられませんでした。

ネットで調べていると、RegExpオブジェクトを生成して、正規表現とオプションを指定できる方法をみつけました。
下のコードを見てもらうと分かるのですが、オブジェクト生成時にRegExpオブジェクトの第二引数に、オプションを個別で
指定できるので、正規表現部分に変数を使えることができます。

さっき、知ったので書いときました。

コード:

function TagReturn(str,tag,flag)
{
	if(flag==0){
                //オプションなし
		var ch=new RegExp("<"+tag+">[^<]+<\/"+tag+">");
		return str.match(ch);
	
	}else if(flag==1){
		//配列を返させるため、オプションでGを指定。
		var ch = new RegExp("<"+tag+">[^<]+<\/"+tag+">","g");//←第二引数に個別で指定できる。
		
		return str.match(ch);
	}
}

ほとんど私の備忘録になるかもしれませんが、すみません><

Re: 【Tips】豆知識等のスレッド

Posted: 2011年1月27日(木) 20:30
by Ciel
もう一つ。

JavaScriptのXMLHttpRequestはクロスドメインでのアクセスが制限されている。
よって、外部にあるファイルにアクセスして、データを受け取って解析したりするには、PHPやCGIを経由して受け取るか、
flash等を使うしかない。

さっきハマったので書いておきました。

Re: 【Tips】豆知識等のスレッド

Posted: 2011年1月27日(木) 21:14
by h2so5
Ciel さんが書きました: JavaScriptのXMLHttpRequestはクロスドメインでのアクセスが制限されている。
私もそれはハマりました。
しかもIEだとローカル上のhtml内のjavascriptでは、
普通に外サイトにアクセスできてしまうため気づきませんでした。

なぜスクリプトがFireFoxで動かないのか疑問でしたが、FireFoxの実装の方が正しいんですね。

ちなみに、CGIやFlashを使う以外にも、JSONを使う方法もあります。
データの発行元が対応していれば、これが一番手軽かもしれませんね。

Re: 【Tips】豆知識等のスレッド

Posted: 2011年1月27日(木) 21:38
by Ciel
h2so5 さんが書きました:
Ciel さんが書きました: JavaScriptのXMLHttpRequestはクロスドメインでのアクセスが制限されている。
私もそれはハマりました。
しかもIEだとローカル上のhtml内のjavascriptでは、
普通に外サイトにアクセスできてしまうため気づきませんでした。

なぜスクリプトがFireFoxで動かないのか疑問でしたが、FireFoxの実装の方が正しいんですね。

ちなみに、CGIやFlashを使う以外にも、JSONを使う方法もあります。
データの発行元が対応していれば、これが一番手軽かもしれませんね。
JSONですか。初めて知りましたね^^;
情報ありがとうございます!