回答編集履歴

3 typo修正 + Babel

think49

think49 score 17012

2017/08/01 17:48  投稿

### URL Standard
ただし、IE11- は未対応なので、Polyfill を適用する必要があります。
- [6.1. URL class - URL Standard (日本語訳)](https://triple-underscore.github.io/URL-ja.html#url-class)
- [6.2. URLSearchParams class - URL Standard (日本語訳)](https://triple-underscore.github.io/URL-ja.html#interface-urlsearchparams)
- [URL API - Can I use...](http://caniuse.com/#feat=url)
- [URLSearchParams - Can I use...](http://caniuse.com/#feat=urlsearchparams)
```JavaScript
'use strict';
var url1 = new URL('http://example.com/sample.html');
url1.searchParams.append('a', 1);
console.log(url1.toString()); // http://example.com/sample.html?a=1
var url2 = new URL('http://example.com/sample.html?a=1');
url2.searchParams.append('b', 2);
console.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 は多くのサイトでスプレッド演算子(spread operator)と説明されていますが、厳密には演算子に分類されません。)
- [spread (...) operator - ECMAScript 6 compatibility table](http://kangax.github.io/compat-table/es6/#test-spread_(...)_operator)
- [12.2.5Array Initializer - ECMAScript® 2016 Language Specification](http://www.ecma-international.org/ecma-262/7.0/#sec-array-initializer)
```JavaScript
var url3 = new URL('http://example.com/sample.html?a=1&b=2&c=3#d=4&e=5');
console.log(url3.pathname); // "/sample.html"
console.log([...url3.searchParams].length); // 3
```
### Polyfill
- [url polyfill - Google 検索](https://www.google.co.jp/search?q=url+polyfill)
Re: satoru32 さん
2 GET パラメータの数を得る

think49

think49 score 17012

2017/08/01 17:44  投稿

### URL Standard
- [URL Standard (日本語訳)](https://triple-underscore.github.io/URL-ja.html)
- [6.1. URL class - URL Standard (日本語訳)](https://triple-underscore.github.io/URL-ja.html#url-class)
- [6.2. URLSearchParams class - URL Standard (日本語訳)](https://triple-underscore.github.io/URL-ja.html#interface-urlsearchparams)
- [URL API - Can I use...](http://caniuse.com/#feat=url)
- [URLSearchParams - Can I use...](http://caniuse.com/#feat=urlsearchparams)
```JavaScript
'use strict';
var url1 = new URL('http://example.com/sample.html');
url1.searchParams.append('a', 1);
console.log(url1.toString()); // http://example.com/sample.html?a=1
var url2 = new URL('http://example.com/sample.html?a=1');
url2.searchParams.append('b', 2);
console.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- が対象ブラウザに含まれるるのなら、Polyfill の機能に準じて下さい。  
 
- [spread (...) operator - ECMAScript 6 compatibility table](http://kangax.github.io/compat-table/es6/#test-spread_(...)_operator)  
- [12.2.5Array Initializer - ECMAScript® 2016 Language Specification](http://www.ecma-international.org/ecma-262/7.0/#sec-array-initializer)  
 
```JavaScript  
var url3 = new URL('http://example.com/sample.html?a=1&b=2&c=3#d=4&e=5');  
console.log(url3.pathname); // "/sample.html"  
console.log([...url3.searchParams].length); // 3  
```  
 
### Polyfill
- [url polyfill - Google 検索](https://www.google.co.jp/search?q=url+polyfill)
Re: satoru32 さん
1 Polyfill

think49

think49 score 17012

2017/07/27 21:52  投稿

### URL Standard
ただし、IE11- は未対応。  
 
- [URL Standard (日本語訳)](https://triple-underscore.github.io/URL-ja.html)
- [URL API - Can I use...](http://caniuse.com/#feat=url)  
- [URLSearchParams - Can I use...](http://caniuse.com/#feat=urlsearchparams)  
```JavaScript
 
'use strict';
var url1 = new URL('http://example.com/sample.html');
url1.searchParams.append('a', 1);
console.log(url1.toString()); // http://example.com/sample.html?a=1
var url2 = new URL('http://example.com/sample.html?a=1');
url2.searchParams.append('b', 2);
console.log(url2.toString()); // http://example.com/sample.html?a=1&b=2
```
### Polyfill  
 
- [url polyfill - Google 検索](https://www.google.co.jp/search?q=url+polyfill)  
 
Re: satoru32 さん

思考するエンジニアのためのQ&Aサイト「teratail」について詳しく知る