0
我有以下功能:爲什麼我會得到這個函數的雙控制檯消息?
var checkNameLenght = function(name,nameLenght,allowedLenght,defaultName) {
var result;
if(!(nameLenght <= allowedLenght) || !(/[^a-z]/i.test(name))) {
result = name;
}
else {
if(opts.debug == true) {
console.log(name+' is to long or contains special characters/numbers | Please choose a name shorter than '+allowedLenght+' characters or remove any character/number');
}
result = defaultName;
}
return result;
}
我用它來檢查一個字符串的長度(在我的情況的輸入值),如果它包含任何特殊字符或數字。
我用它像這樣:
var input = 'Somevalue';
checkNameLenght(input ,input.length,16,'Username');
的唯一的事情是,如果input
字符串包含一些不是將輸出消息兩次控制檯上述條件。
這是爲什麼發生?
當在JS控制檯中手動運行提供的代碼時,我沒有遇到雙重打印錯誤。到處檢查是否調用了'checkNameLenght()'以確保它沒有被調用兩次。看到更多的代碼可能會有所幫助。 – 2012-01-04 15:20:04
我沒有給你答案,但我想我會很挑剔,並指出你已經在整個函數中將「length」拼寫成「lenght」。 – evilspoons 2012-01-04 15:20:17
您的代碼中沒有任何內容會建議您記錄兩次。也許你在代碼的其餘部分多次調用'checknameLenght()'函數? – swatkins 2012-01-04 15:21:54