嗯,我有一個小問題,但真的很奇怪。在.match()使用一個點
所以基本上我分析了一個字符串表示的URL。我唯一想檢查的是這個URL是否包含'.pdf'
但問題是,如果URL內容只是'pdf',它也會進入IF條件。所以我不太明白,是'。'一個特殊的caracter?
if (URL.match(".pdf"))
嗯,我有一個小問題,但真的很奇怪。在.match()使用一個點
所以基本上我分析了一個字符串表示的URL。我唯一想檢查的是這個URL是否包含'.pdf'
但問題是,如果URL內容只是'pdf',它也會進入IF條件。所以我不太明白,是'。'一個特殊的caracter?
if (URL.match(".pdf"))
是的。
您需要使用反斜槓進行轉義。
if (URL.match(/\.pdf$/i))
的$
意味着該URL必須與該模式
更新結束:
我不知道在哪個範圍內運行的代碼,但使用jQuery你也可以創建一個選擇器,它符合如下要求:
var $pdf_only = $('a[href$=\\.pdf]');
這將查詢所有錨,這HREF與.pdf
是結束。 match()
需要正則表達式作爲它的參數。您應該用文字在這裏正則表達式和逃避.
:
if (URL.match(/\.pdf/))
或者你使用一個字符串,你需要加倍逃避它,因爲反斜槓是一個特殊字符在字符串:
if (URL.match("\\.pdf"))
正則表達式中未轉義的.
表示「任何字符」。
使用正則表達式文字並轉義點。
if (url.match(/\.pdf$/) {
// shazam
}
或者作爲字符串
if (url.match("\\.pdf$") {
// shazam
}
RoToRa擊敗了我;) – BGerrissen 2011-03-22 11:03:19
對不起^^'Thansk爲你提供幫助;) – Sindar 2011-03-22 11:04:59
所以....如果點是一個特殊字符,這是什麼意思? – Thilo 2011-03-22 11:01:07
我已經嘗試過'\ .pdf',但它沒有改變這個問題。仍然輸入IF條件 – Sindar 2011-03-22 11:01:17
Afaik雙反斜槓在傳遞字符串而不是正則表達式時轉義反斜槓。 – BGerrissen 2011-03-22 11:01:33