2012-03-30 9 views
1

とURLパス名と一致するようにしようとしています。は、私はこれに一致するようにしようとしている正規表現

私は文字を正しくエスケープしていないと思います。

var pattern = new RegExp("^/" + href + "*$");

これは私が動的テストを形成しています方法です。どんな援助も歓迎されるだろう。

これはもっと役立つと思います。現在のページとサブページのクラスを追加するURLを一致させようとしています

`var activePage = window.location.pathname; $( "#1のNAVのLi A")は、各(関数(){ VARのHREF = $(この).ATTR( "HREF");

// var pattern = new RegExp("^/" + href + "/\\.*$"); 
    var pattern = new RegExp("^/" + href + ".*$") 

    if (pattern.test(activePage)) { 
     $(this).addClass("active"); 
    } 
}); 

`

EDIT:

これは私が正規表現に代わり見つけソリューションです。誰もが正規表現でこれを解決するための別の方法を考え出すことはできますか?

var activePage = window.location.pathname; $("#nav li a").each(function() { var href = $(this).attr("href"); if (window.location.pathname.indexOf(href) == 0) { if (href != "/") { $(this).addClass("active"); } if (href == "/" && activePage == href) { $(this).addClass("active"); } } });

答えて

3
var pattern = new RegExp("^/" + href + ".*$"); 

アスタリスク

前にドットを忘れたが、より良い正規表現は次のようになります。

"^/" + href + "/.*$" 

サブパスとない部分単語

+0

なぜあなたは、ドットをエスケープさを持っていることを確認しますか? – dldnh

+1

'.'をエスケープすると、ドットが文字通り一致します。これは 'var pattern = new RegExp(" ^/"+ href +"。* $ ")' –

+0

おっと、すみません。終わり。 ) –

関連する問題