2011-11-07 40 views
1

如何判斷一個window.location.hrefjs如果window.location.href不匹配,那麼跳轉到

如果window.location.href不匹配?search=,使當前的URL跳轉到http://localhost/search?search=car

我的代碼無法工作,或者我應該使用indexOf,使法官?謝謝。

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

你缺少一個')' – Neal

回答

5

一些事情:你錯過了一個關閉paren,你需要逃避?因爲它對正則表達式很重要。使用/ \?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()函數時變成\。在第二個例子中,/.../構造直接創建一個正則表達式,並且由於它不是首先經過一個字符串,所以不需要轉義它。 –

相關問題