我不明白這個小片段:var num = str.replace(/[^0-9]/g, '');
的確如此。這是什麼混淆JavaScript代碼段意味着/做什麼?
上下文:
function retnum(str) {
var num = str.replace(/[^0-9]/g, '');
var liczba = parseInt(num);
return liczba;
}
我不明白這個小片段:var num = str.replace(/[^0-9]/g, '');
的確如此。這是什麼混淆JavaScript代碼段意味着/做什麼?
上下文:
function retnum(str) {
var num = str.replace(/[^0-9]/g, '');
var liczba = parseInt(num);
return liczba;
}
這JavaScript代碼段將撕裂了任何不是(正則表達式的^
部分指「未」)一在str
號,然後從該結果作爲返回一個整數鑄liczba
。見我的評論:
// This function will return a number from a string that may contain other characters.
// Example: "1.23" -> 123
// Example: "a123" -> 123
// Example: "hg47g*y#" -> 47
function retnum(str) {
// First let's replace everything in str that is not a number with "" (nothing)
var num = str.replace(/[^0-9]/g, '');
// Let's use JavaScript's built in parseInt() to parse an Integer from the remaining string (called "num")
var liczba = parseInt(num);
// Let's now return that Integer:
return liczba;
}
順便說一句,「liczba」是指在波蘭:-)數
非常感謝您通過代碼中的步驟進行徹底的解釋和指導! – ADAMPOKE111
沒問題亞當!如果你能回答你的問題,你能否正確回答我的答案? –
這不是模糊的,它的使用regular expression。
表達式匹配所有不是數字的東西,然後刪除它們。 0-9
的意思是「任何數字」,^
的意思是「不」。 g
標誌意味着檢查整個字符串,而不僅僅是第一次匹配。最後,結果轉換爲數字。
實施例:
var input = 'abc123def456';
var str = input.replace(/[^0-9]/g, '');
var num = parseInt(str);
document.querySelector('pre').innerText = num;
<pre></pre>
該函數採用一個字符串,從它去除所有非數字字符,輪流串入的整數,並返回整數。你所特別提到的那一行是使用string.replace方法從初始字符串中去除所有非數字字符的部分。
它實際上只是用空白('')代替任何不是數字的東西。
這只是將任何字符串轉換爲數字的基本方法 – adeneo
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/RegExp – Teemu
這甚至沒有模糊處理,您應該閱讀有關正則表達式。 –