2011-04-12 68 views
1

我不是一個JS大師,但有人可以幫我找到下面的代碼片段中的無效量詞錯誤嗎?Javascript - 無效的量詞錯誤,有人能幫我看看我的錯誤嗎?

感謝提前! -mprototype

function $_GET(q,s) { 
     s = s ? s : window.location.search; 
     var re = new RegExp('&' + q + '(?:=([^&]*))?(?=&|$)' , 'i'); 
     return (s=s.replace(/^?/,'&').match(re)) ? (typeof s[1] == 'undefined' ? '' : decodeURIComponent(s[1])) : undefined; 
    } 
+0

這是應該做的:'/ ^?/'?它給了我* SyntaxError:無效的正則表達式:/ ^?/:沒有重複*。也許你也可以解釋功能應該做什麼。 – 2011-04-12 16:46:16

+1

您需要轉義?或將其從搜索字符串中刪除-s = s || (1)window.location.search.substring; – kennebec 2011-04-12 16:50:34

+0

這個函數應該像var var1 = $ _GET('key')一樣在javascript中使用get var – none 2011-04-12 17:48:26

回答

1

?在正則表達式特殊的意義,特別是它使前面的項可選。如果您正在嘗試查找問號字符本身,則需要使用反斜槓進行轉義。

function $_GET(q,s) { 
     s = s ? s : window.location.search; 
     var re = new RegExp('&' + q + '(?:=([^&]*))?(?=&|$)' , 'i'); 
     return (s=s.replace(/^\?/,'&').match(re)) ? (typeof s[1] == 'undefined' ? '' : decodeURIComponent(s[1])) : undefined; 
    } 
+0

我會試一試,謝謝輸入! – none 2011-04-12 17:53:24

+0

成功,你是男人 – none 2011-04-12 18:54:29

相關問題