2011-11-07 8 views
1

に移動しますwindow.location.hrefを鑑定するには?js window.location.hrefが一致しない場合は、

window.location.href?search=と一致しない場合は、http://localhost/search?search=car

私のコードに現在のURLジャンプがうまくいかせるか、私は裁判官を作るためにindexOfを使用する必要がありますか?ありがとう。

if(!window.location.href.match('?search='){ 
    window.location.href = 'http://localhost/search?search=car'; 
} 
+0

あなたは、 ')' – Neal

答えて

5

2つのこと:クローズドパレンが足りなくて、あなたはエスケープする必要がありますか?これは正規表現にとって重要な意味を持つためです。/\?search = /または '\?search ='のいずれかを使用します。

// Create a regular expression with a string, so the backslash needs to be 
// escaped as well. 
if (!window.location.href.match('\\?search=')) { 
    window.location.href = 'http://localhost/search?search=car'; 
} 

または

// Create a regular expression with the /.../ construct, so the backslash 
// does not need to be escaped. 
if (!window.location.href.match(/\?search=/)) { 
    window.location.href = 'http://localhost/search?search=car'; 
} 
+0

権利である、不注意 '決算paren'不足している、主な結果は脱出'ある? 'おかげで不足しています。 –

+1

@Scott A:言及しました:答えに/ \?search =/'\?search ='を使用しますが、最初の例では '\\?search ='なぜ '\?search =' ?? ?? – Tarik

+1

@Tarik最初の例では、正規表現自体にバックスラッシュが必要ですが、文字列内のバックスラッシュを表すには、バックスラッシュをエスケープする必要があります。別のバックスラッシュを使用する必要があります。 \\はmatch()関数に送られるとき\となります。 2番目の例では、/.../構造体が直接正規表現を作成します。最初に文字列を処理しないため、エスケープする必要はありません。 –

関連する問題