2012-01-02 9 views
0

document.links[0].hrefのようなアンカーオブジェクトのURLを取得しています。この文字列から検索部分(「後に出る部分」「?」記号)を削除したいと思います。私はこれに正規表現を使うことができることを知っています。これを行う他の効率的な方法はありますか?URLの検索部分を削除する

答えて

1
var a = //my string 
a = a.substr(0, a.indexOf('?')); 

最初の部分文字列を取得します。?;なんらかの理由で2つがある場合は、?の2つ目はおそらくクエリパスにあり、とにかく削除されます...

0

1つの方法は、 "?"キャラクター。

var url = document.links[0].href; 
var base = url.split("?")[0]; 

は速いはずですが、何らかの理由で2つのURLがあると問題が発生する可能性があります。

+1

これは動作します。しかし、私はパフォーマンスについて非常に心配しています。私は600ミリ秒前に何百ものリンクを処理しなければならないでしょう。既にそれは約550msかかる。そうすることは問題になります。 –

+0

@Selvaraj M A - ベンチマークしましたか?私はあなたがその時間の大部分が文字列を処理する文字列ではなく文字列を取得するためにDOMを打つことに費やされていることに気付くでしょう。 – Quentin

-1

あなたは、この使用して検索パーツを見つけることができます。その後、

document.location.search 

とはdocument.location.hrefからそれを交換するか、あなたの目的のためにdocument.location.hostとdocument.location.pathnameを使用

+1

これは動作しません。アンカーオブジェクト(文字列)からURLを取得しているためです。文書からではありません。 –

関連する問題