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

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

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

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

Q&A

解決済

1回答

2478閲覧

JavaScriptでURLのパラメータを判断して処理を変更する方法

satoru32

総合スコア13

JavaScript

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

0グッド

0クリップ

投稿2017/07/27 12:26

編集2017/07/27 12:29

JavaScriptが分からないのでご教授お願いしたいのですが
JavaScriptでlocation.searchやlocation.hashを使った書き方でURLのパラメータを判断して処理を変更する方法がしりたいです。
アンカーリンクをクリックしたときにsample.htmlというリンクがあるとしたらクリックした時に?をつけてまたsample.html&1のように&が含まれている場合は
処理をせずにそのままにするJavaScriptの書き方が知りたいです。

宜しくお願いします。

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

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

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

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

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

guest

回答1

0

ベストアンサー

URL Standard

ただし、IE11- は未対応なので、Polyfill を適用する必要があります。

JavaScript

1 2'use strict'; 3var url1 = new URL('http://example.com/sample.html'); 4url1.searchParams.append('a', 1); 5console.log(url1.toString()); // http://example.com/sample.html?a=1 6 7var url2 = new URL('http://example.com/sample.html?a=1'); 8url2.searchParams.append('b', 2); 9console.log(url2.toString()); // http://example.com/sample.html?a=1&b=2

GET パラメータの数を得る

拡張子だけで判断してhtml,phpという拡張子が付いてるときは?で&を2個以上含んでる時のURLは何も処理をしないJavaScriptの書き方は出来ますでしょうか?

拡張子は URL#pathname を正規表現で切り出す事で得る事が可能です。

URLSearchParams は iterable なのでスプレッド要素(SpreadElement)で配列化すれば要素数を得られます。
(SpreadElement は多くのサイトでスプレッド演算子(spread operator)と説明されていますが、厳密には演算子に分類されません。)
ただし、SpreadElement は IE11- が未対応なので、IE11- が対象ブラウザに含まれるのなら、Babel 等のトランスコンパイラを使うか、Polyfill の機能に準じて下さい。

JavaScript

1var url3 = new URL('http://example.com/sample.html?a=1&b=2&c=3#d=4&e=5'); 2console.log(url3.pathname); // "/sample.html" 3console.log([...url3.searchParams].length); // 3

Polyfill

Re: satoru32 さん

投稿2017/07/27 12:46

編集2017/08/01 08:48
think49

総合スコア18164

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

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

satoru32

2017/07/28 00:26

回答ありがとうございます!
satoru32

2017/07/28 00:34

JavaScriptの書き方でvar url1 = new URL('http://example.com/sample.html');と書いてもらった のですが拡張子だけで判断してhtml,phpという拡張子が付いてるときは?で&を2個以上含んでる時のURLは何も処理をしないJavaScriptの書き方は出来ますでしょうか? 宜しくお願いいたします。
think49

2017/08/01 08:45

親記事に追記しました。 丸投げは歓迎しないので、以降の質問は現状のコードを書いて新しく質問を立てる事をお勧めします。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問