回答編集履歴

3

クエリ文字列に /?# を含んでも期待通りに動作するように

2015/08/25 22:56

投稿

think49
think49

スコア18162

test CHANGED
@@ -4,7 +4,7 @@
4
4
 
5
5
  ```JavaScript
6
6
 
7
- var url = /^(?:[^/]*\x2f)*([^#?]*)\?/.exec('http://sample.jp/sample/category/2?site_domain=sample');
7
+ var url = /^(?:[^/?#]*\x2f)*([^#?]*)\?/.exec('http://sample.jp/sample/category/2?site_domain=sample&hoge=/?#&foo=/?#');
8
8
 
9
9
  url[1]; // "2"
10
10
 

2

location.pathname のコード追加

2015/08/25 22:56

投稿

think49
think49

スコア18162

test CHANGED
@@ -9,3 +9,25 @@
9
9
  url[1]; // "2"
10
10
 
11
11
  ```
12
+
13
+
14
+
15
+ ---
16
+
17
+
18
+
19
+ 書いてから気が付きましたが、`location.pathname` を使った方がスマートに書けますね。
20
+
21
+
22
+
23
+ ```JavaScript
24
+
25
+ var pathname = location.pathname,
26
+
27
+ filename = pathname.slice(pathname.lastIndexOf('/') + 1);
28
+
29
+
30
+
31
+ console.log(filename);
32
+
33
+ ```

1

URLハッシュの例外処理追加

2015/08/25 11:50

投稿

think49
think49

スコア18162

test CHANGED
@@ -4,7 +4,7 @@
4
4
 
5
5
  ```JavaScript
6
6
 
7
- var url = /^(?:[^/]*\x2f)*([^?]*)\?/.exec('http://sample.jp/sample/category/2?site_domain=sample');
7
+ var url = /^(?:[^/]*\x2f)*([^#?]*)\?/.exec('http://sample.jp/sample/category/2?site_domain=sample');
8
8
 
9
9
  url[1]; // "2"
10
10