我在js裡面寫了一個去除首尾空格及特定字符的函數。代碼如下:
復制代碼 代碼如下:
function trim(str, charlist) {
return str.replace(new RegExp('^[\\s'+charlist+']+|[\\s'+charlist+']+$', 'g'), '');
}
代碼看上去沒有什麼問題,運行起來也沒有錯誤。
直到今天,我在搜索欄裡搜索“note3”的時候,才發現,地址欄裡搜索的內容變成了“ote3”,而其他字母或者是數字開頭則是正常的,搜索什麼,地址欄裡的內容就是什麼。
調試過代碼之後,將代碼改為:
復制代碼 代碼如下:
function trim(str, charlist) {
var charlist = charlist || "";
return str.replace(new RegExp('^[\\s'+charlist+']+|[\\s'+charlist+']+$', 'g'), '');
}
在函數中增加了對charlist的初始化。在次搜索“note3”,結果正確。
雖然js是弱類型語言,使用變量並不要求一定要初始化,運行的時候,代碼會自動轉換並賦值。但是這樣做會引起一些意想不到的問題,因此,對所有使用到的變量進行初始化,是非常有必要的。
今天就先到這裡了,希望小伙伴們能夠喜歡。