2016-11-25 6 views
1

"/"文字の最初の出現時に文字列を分割しようとしています。私はsplit( '/')を使って複数の要素に分割することができますが、欲張りな演算子(?)を使って "/"文字の最初の出現で文字列を分割しようとすると、目的の文字列..指定された文字の最初の出現時にのみ分割文字

Javascriptのコード

var url_string ="http://localhost:8080/myapp.html#/" 
var sub_url = url_string.split(/(.+)?/)[1]; 

電流出力。

myapp.html#/ 

私はwrong.please助けをやっているのか理解できない出力を希望

http://localhost:8080/myapp.html#/ 

..!

+0

なぜあなたは交換しない "にhttp:// localhost:8080 /" 空とし、その値を持つ変数を宣言します。つまり、次のようになります。var SERVER_URL = "http:// localhost:8080 /"; "/ sub/url_string.replace(SERVER_URL、" ") –

+0

または' .split(/ \ /(?= [^ \ /] * \/$)/)[1] ' –

+0

または[ * \/$/'](https://regex101.com/r/Ls40Yx/1) –

答えて

3

Locationの力を使って結果を調整することができます。

var url_string = "http://localhost:8080/myapp.html#/" 
 
var url = document.createElement('a'); 
 

 
url.href = url_string; 
 
console.log(url.pathname.slice(1) + url.hash);

+0

OPは次のよ​​うに尋ねます: 'myapp.html#/' –

1

あなたはサービス$locationからAngularJS $location.url()を使用することができます。

// given URL http://localhost:8080/myapp.html#/ 
var url = $location.url(); 
// => "/myapp.html#/" 

...と、最初の文字を削除します。

それとも、ウェブAPI URLができます。

var url = new URL('http://localhost:8080/myapp.html#/'); 
 
console.log(url.pathname.slice(1) + url.hash);

関連する問題