2012-04-12 151 views
1

有人可以解釋這段代碼的作用。什麼是測試功能測試?這個函數做什麼?什麼是奇怪的語法?

temp = "blah" 
if (/from_url=$/.test(temp)) { 
    //do something 
} 

test : function(s, p) { 
    s = s.nodeType == 1 ? s.value : s; 

    return s == '' || new RegExp(p).test(s); 
} 

另外在最初的情況下,語法if(/ from_url = $ /)是做什麼的?

+0

這不是jQuery - 它的普通JavaScript - 更新標籤 – ManseUK 2012-04-12 08:40:50

+0

我認爲他從jQuery源中複製它。至少變形的空白量和第二個塊顯然是從對象文本複製的事實看起來像jQuery源代碼。 – ThiefMaster 2012-04-12 08:41:54

+0

@ThiefMaster啊好吧 - 我會把jQuery標籤放回去...... ta – ManseUK 2012-04-12 08:42:32

回答

3

s = s.nodeType == 1 ? s.value : s;如果s.nodeType是1,那麼使用s .value,否則使用s。

return s == '' || new RegExp(p).test(s);如果它是空字符串,則返回s,否則測試s是否在正則表達式p中。

if(/from_url=$/)是一個正則表達式,它正在尋找from_url=,但只有在它的最後。

0
/from_url=$/ 

是JavaScript中的正則表達式。如果字符串以「from_url=」字符串結尾你可以用

new RegExp('from_url=$') 

更換這種特殊的正則表達式檢查。

+1

當使用RegExp()時,你不應該包含斜線...... – ThiefMaster 2012-04-12 08:42:24

+0

@ThiefMaster:你是對的,看到更新後的答案。 – Tadeck 2012-04-12 08:46:05

1
/from_url=$/ 

是一個正則表達式 應該翻譯成檢查溫度,並尋找是否有「from_url =」這個文本字符串的結尾