这个混淆了javascript片段的意思/做什么?

时间:2016-02-19 18:03:13

标签: javascript

我无法理解这个小片段:var num = str.replace(/[^0-9]/g, '');

上下文:

function retnum(str) {
    var num = str.replace(/[^0-9]/g, '');
    var liczba = parseInt(num);
    return liczba;
}

4 个答案:

答案 0 :(得分:2)

此JavaScript代码段将删除任何不是(正则表达式的^部分意味着“not”)str中的数字,然后从结果中返回整数强制转换为{{ 1}}。看我的评论:

liczba

顺便说一句,“liczba”是指波兰语中的数字: - )

答案 1 :(得分:2)

此函数接受一个字符串,从中删除所有非数字字符,将字符串转换为整数,然后返回整数。您要特别询问的是使用http://www.extendoffice.com/documents/excel/456-combine-multiple-workbooks.html方法从初始字符串中删除所有非数字字符的部分。

答案 2 :(得分:0)

它没有被混淆,它正在使用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>

答案 3 :(得分:0)

它实际上只是用空格('')替换任何不是数字的东西。