質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
URL

URL(ユニフォームリソースロケータ)とは、インターネット上のリソース(Webページや電子メールの宛先等)を特定するための形式的な記号の並びの事を言う。

パラメータ

関数やプログラム実行時に与える設定値をパラメータと呼びます。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

Q&A

解決済

1回答

1384閲覧

共通のパラメータの値の後に付く数字が変わる場合の処理をまとめたいです。

mmngchip

総合スコア19

URL

URL(ユニフォームリソースロケータ)とは、インターネット上のリソース(Webページや電子メールの宛先等)を特定するための形式的な記号の並びの事を言う。

パラメータ

関数やプログラム実行時に与える設定値をパラメータと呼びます。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

0グッド

0クリップ

投稿2019/06/05 01:02

JavaScriptでURLのパラメータを判断して処理を変更したのですが、
共通のパラメータの値の後に付く数字が変わる場合の処理をまとめたいです。

<参考サイト>
https://www.tam-tam.co.jp/tipsnote/javascript/post9911.html

・パラメータ(複数)
?id=osaka01
?id=osaka02
?id=osaka03
?id=osaka04

「?id=osaka」ここまでは共通なのですが、そのあとに01、02、03...とあり、
今現在は1つ1つ処理を書いていますが、
この数字が今後増えたとしてもjsを書き足さなくても良いようにしたいです。
数字が増えても出す文言は同じなのですが、リンク元が違うのでパラメータが変わるようになっています。

html

1<div class="pram"></div>

js

1// URLのパラメータを取得 2var urlParam = location.search.substring(1); 3 4// URLにパラメータが存在する場合 5if(urlParam) { 6 // 「&」が含まれている場合は「&」で分割 7 var param = urlParam.split('&'); 8 9 // パラメータを格納する用の配列を用意 10 var paramArray = []; 11 12 // 用意した配列にパラメータを格納 13 for (i = 0; i < param.length; i++) { 14 var paramItem = param[i].split('='); 15 paramArray[paramItem[0]] = paramItem[1]; 16 } 17 18 // パラメータidがosakaかどうかを判断する 19 if (paramArray.id == 'osaka01') { 20 $('.pram').append('<p>大阪です</p>'); 21 } else if (paramArray.id == 'osaka02') { 22 $('.pram').append('<p>大阪です</p>'); 23 } else if (paramArray.id == 'osaka03') { 24 $('.pram').append('<p>大阪です</p>'); 25 } else if (paramArray.id == 'osaka04') { 26 $('.pram').append('<p>大阪です</p>'); 27 } else { 28 $('.pram').append('<p>大阪ではありません</p>'); 29 } 30}

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

yambejp

2019/06/05 01:06

?id=osaka01&id=osaka02 のような場合や ?id=osaka01&id=tokyo01 のような場合はどうするのですか?
mmngchip

2019/06/05 01:25

&以下は関係なく、「?id=osaka」ここが共通のパラメータを出し分けたいので、 「?id=osaka」が含まれていたら「<p>大阪です</p>」この文言を出したかったのですが、 うまくできなかったため、今は一つ一つ 「?id=osaka01」「?id=osaka02」「?id=osaka03」…と書いています。。。 分かりにくくて申し訳ありませんが、 &以下などは関係なく、「?id=osaka」が含まれていたら「<p>大阪です</p>」この文言を出せる方法があれば一番良いです。。。
guest

回答1

0

ベストアンサー

paramArrayは配列じゃなくてオブジェクトです

osakaのあとに1つ以上の数値がつけばいいなら以下

javascript

1<script> 2$(function(){ 3 var urlParam = location.search.substring(1); 4 if(urlParam) { 5 var param = urlParam.split('&'); 6 var paramArray = {}; 7 for (i = 0; i < param.length; i++) { 8 var paramItem = param[i].split('='); 9 paramArray[paramItem[0]] = paramItem[1]; 10 } 11 var reg=new RegExp("^osaka\d+$"); 12 $('.pram').append($('<p>').text('大阪で'+(paramArray.id.match(reg)?'す':'はありません'))); 13 } 14}); 15</script> 16 17<div class="pram"></div> 18<a href="?id=osaka">osaka</a><br> 19<a href="?id=osaka01">osaka01</a><br> 20<a href="?id=osaka02">osaka02</a><br> 21<a href="?id=osaka03">osaka03</a><br> 22<a href="?id=osaka04">osaka04</a><br> 23<a href="?id=osaka1234">osaka1234</a><br> 24<a href="?id=osaka1x">osaka1x</a><br> 25<a href="?id=tokyo">tokyo</a><br>

投稿2019/06/05 01:28

yambejp

総合スコア114572

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

mmngchip

2019/06/18 05:41

遅くなり申し訳ございません… 大変助かりました。ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問