计算字符串中的位数
Count the Number of Digits in a String in JavaScript
要计算字符串中的位数,请使用该replace()
方法将所有非数字字符替换为空字符串并访问length
结果的属性。该replace
方法返回一个替换了匹配项的新字符串。
索引.js
function getCountOfDigits(str) { return str.replace(/[^0-9]/g, '').length; } console.log(getCountOfDigits('12hello34')); // 👉️ 4 console.log(getCountOfDigits('hello')); // 👉️ 0 console.log(getCountOfDigits('hello12.5')); // 👉️ 3
我们使用
String.replace
方法替换了字符串中所有非数字字符,这样我们就可以得到只包含数字的字符串的长度。
我们传递给该
replace
方法的第一个参数是一个正则表达式,第二个参数是对字符串中结果表达式的每个匹配项的替换。正斜杠/ /
标记正则表达式的开始和结束。
方括号之间的部分[]
称为字符类。
插入^
符号的意思是“不是以下”,换句话说,我们正在匹配除了0-9
.
我们使用g
(global) 标志是因为我们想要匹配字符串中出现的所有非数字字符,而不仅仅是第一次出现的字符。
如果您在阅读正则表达式时需要帮助,请查看
来自 MDN的正则表达式速查表。这是迄今为止最好的。
我们传递给该replace
方法的第二个参数是每个匹配项的替换字符串。因为我们要删除所有非数字字符,所以我们提供了一个空字符串。
该
replace
方法不改变原始字符串的内容,它返回一个新的字符串。字符串在 JavaScript 中是不可变的。总的来说,正则表达式将所有非数字字符替换为空字符串。
索引.js
console.log('hello123'.replace(/[^0-9]/g, '')); // 👉️ 123
最后一步是访问length
新字符串的属性,它会为我们提供原始字符串中的位数。