2015-05-29 69 views
0

我在JS這個功能:功能時,纔會執行中途

function test(value, requirement) 
{ 
    console.log("value: '" + value + "' requirement: '" + requirement + "'"); 
    var regExp = new RegExp(requirement, ''); 
    console.log("regExp: " + regExp); 
    var str = "" + value; 
    console.log("str: " + str);// [1] 
    var ok = str.test(regExp);// [2] 
    console.log("ok: " + ok); // [3] 
    return ok; 
} 

我啓用Firebug執行它在Firefox和控制檯顯示:

value: '123' requirement: '^123$' 
regExp: /^123$/ 
str: 123 

直到1一切正常。爲什麼不執行[3]? [2]有什麼問題,我該如何解決?

編輯:我用here的代碼(對不起,它是德國的),在控制檯中沒有錯誤。

回答

1

test是正則表達式,而不是字符串的方法:

regExp.test(str) 
1

test()是正則表達式的方法,而不是字符串 - 你需要這樣的:

var ok = regExp.test(str); // [2] 

(此外,你應該總是在JavaScript控制檯打開的情況下運行您的代碼 - 這會顯示一條錯誤消息,幫助您識別問題。)

+0

我打開了控制檯,它沒有顯示任何錯誤。我需要以某種方式激活嗎? – Burkhard

+0

這很奇怪。你應該看到類似「Uncaught TypeError:str.test不是函數」。 – RichieHindle

0

語法錯誤

它應該是

regExp.test(str) 

測試是正則表達式的方法。類型字符串沒有任何名爲「test」的方法