刪除非數字的JS代碼可以在日常的前端開發工作中非常實用。有些時候我們需要對用戶的輸入進行處理,保留其中的數字內容,這個時候就可以使用這個功能。
首先,我們需要明確一下什么是數字。 數字是由0-9 這十個阿拉伯數字所組成的。如果字符串中有非0-9的字符,那么這個字符就不是數字了。比如,字符串 "2號飯店" 中的 "號" 就不是數字。
function deleteChars(str) { var result = ""; for (var i = 0; i< str.length; i++) { if (!isNaN(parseInt(str[i]))) { result += str[i]; } } return result; } console.log(deleteChars("2號飯店")); // output: 2
上面這段代碼的實現方法是遍歷字符串中的每一個字符,通過 !isNaN(parseInt(str[i]))的判斷條件判斷該字符是否是數字,如果是,則加到result中,并最終返回result,即為刪除非數字后所得到的字符串。
這種方法很適用于只有一個數字的情況,但如果字符串中存在多個數字,這個方法則有點棘手。因為兩個數字之間可能會有其他字符,如果一個一個遍歷來篩選數字字符,是非常繁瑣和低效的。
所以我們需要另外一種方法,來實現批量刪除非數字。下面我們來介紹一種for-of遍歷數組且使用正則表達式的方法:
function deleteChars(str) { var nums = str.match(/\d+/g); return nums ? nums.join("") : ""; } console.log(deleteChars("在一個小巷子里走著278步路")); // output: 278
這里的match函數使用了正則表達式,將匹配到的所有數字都塞進了nums數組中。最后,進行了一個join方法,將數組中的所有元素拼接成一個大字符串,返回作為結果。
這種方法比第一種方法會更簡潔,并且效率更高。因為正則表達式會把所有符合條件的非數字字符都篩選出來。
總結起來,我們可以使用兩種方法來刪除非數字字符。第一種是遍歷字符串的每一個字符,判斷該字符是否是數字,并將數字字符加到result中,最后返回result。第二種是使用正則表達式將所有匹配的數字單獨取出,最后將數字字符拼接成一個大字符串,返回作為結果。
如果你用的是jQuery,那么可以直接使用jQuery的封裝函數, $.isNumeric():
console.log($.isNumeric("100")); // True console.log($.isNumeric("hundred")); // False
如果一個字符串是數字,$.isNumeric()會返回true,否則返回false。
總之,以上這幾種方法可以幫助我們在開發中更方便地處理數字和非數字字符,提高我們的開發效率。