在Node.js中删除数字字符串内全部指定值的实现问题咨询
错误原因
- 当
String.replace()的第一个参数为普通字符串时,JavaScript默认仅替换第一个匹配项,因此第一个写法只能删除首个0。 - 第二个写法的问题在于你在正则字面量中给目标字符0额外加了双引号,此时正则实际匹配的是带双引号的
"0"字符串,和你的原字符串内容不匹配,因此不会生效。
可行实现方案
方案1:使用正确的全局正则替换
var str = "90807005" var result = str.replace(/0/g, '') console.log(result) // 输出:9875
/0/g是正则字面量写法,0代表匹配目标字符0,g修饰符表示全局匹配所有符合规则的内容。
方案2:使用split+join组合(无需正则)
var str = "90807005" var result = str.split('0').join('') console.log(result) // 输出:9875
先按字符"0"将字符串切割为数组,再将数组合并为新字符串,即可间接移除所有0字符。
内容的提问来源于stack exchange,提问作者Ded the Super Duck
相关产品推荐
相关产品推荐

