人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

正規表現について教えてください。
以下のスクリプトでは“
http://www.abc.com/X010102m.jpg”を分解し“http://www.abc.com/X010102l.jpg”を生成します。

これを“http://www.xyz.com/convert.cgi?src=http://www.abc.com/X010102m.jpg&w=67&h=&type=”を分解し、”http://www.abc.com/X010102l.jpg”を生成するには正規表現をどのように変更すればよいでしょうか?
お知恵をお借りできれば幸いです。

function changeImage(img){
var imgsrc = img.src || img;
imgsrc.match(/^(.*)m(\.[^\.]+)$/);
document.main.src = RegExp.$1 + "l" + RegExp.$2;
return false;
}

[現在]
http://www.abc.com/X010102m.jpg

RegExp.$1 → X010102
RegExp.$2 → jpg

http://www.abc.com/X010102l.jpg


[変更後]
http://www.xyz.com/convert.cgi?src=http://www.abc.com/X010102m.jpg&w=67&h=&type=

RegExp.$1 → X010102
RegExp.$2 → jpg

http://www.abc.com/X010102l.jpg

●質問者: icta
●カテゴリ:ウェブ制作
✍キーワード:jpg regexp SRC スクリプト 正規表現
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ● GEN111
●60ポイント

こういうのでどうでしょうか。

imgsrc.match(/src=(.*)m(.*?)(?=&)/) ;

あるいは

function changeImage(img){
 var imgsrc = img.src || img ;
 document.main.src = imgsrc.replace(/^.*?src=(.*)m(.*?)&.*$/, '$1l$2') ;
 return false ;
}

※「&」になっている部分は「&」にしてください。

◎質問者からの返答

GEN111さんご回答ありがとうございます。

ただ残念ながらどちらもうまく機能しません。


もしかしたら正規表現以外に修正箇所があるかもしれませんのでコードの一部を載せました。

もし修正するとしたら下記のコードの/* サムネイル画像 */の部分と思われます。

何かお分かりになりましたらご指摘いただければ幸いです。

<script type="text/javascript">

<!--

location.search.match(/^\?img=([^&]+)(\.[^&\.]+)&num=(.+)$/);

var img = RegExp.$1;

var ext = RegExp.$2;

var num = Number(RegExp.$3);

function changeImage(img){

var imgsrc = img.src || img;

imgsrc.match(/^(.*)m(\.[^\.]+)$/);

document.main.src = RegExp.$1 + "l" + RegExp.$2;

return false;

}

document.write = img && ext && num ? document.write : function(){};

//-->

</script>

<table>

<tr>

<th>

<script type="text/javascript">

<!--

/* サムネイル画像 */

document.write('<a href="#"><img src="/convert.cgi?src=' + img + 'm' + ext + '&w=67&h=&type=" onclick="changeImage(this)"></a><br /><br />');

for (var i = 1; i < num; i++) {

document.write('<a href="#"><img src="/convert.cgi?src=' + img + String.fromCharCode(0x60 + i) + 'm' + ext + '&w=67&h=&type=" onclick="changeImage(this)"></a>');

}

//-->

</script>

</td>

<td>

<script type="text/javascript">

<!--

/* 拡大画像 */

document.write('<img src="' + img + 'l' + ext + '" />');

//-->

</script>

</td>

</tr></table>


2 ● hayashi7
●10ポイント

文章になってない

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ