JavaScript如何替换字符串的第一个字符(数字转字符串场景)
JavaScript实现数字转字符串后替换首字符
原有代码的问题
你写的代码存在两个核心问题:
oldStr是数字类型,本身没有字符串的replace方法,调用会直接抛出错误- 没有限定替换位置,即使转成字符串后再调用
replace(1,9),如果首字符不是1的情况下无法实现需求
具体实现方法
方法1:字符串拼接法(兼容性最优,性能最好)
先将数字转成字符串,用目标首字符拼接原字符串从第二位开始的剩余内容即可:
var oldNum = 12341; // 数字转字符串 var oldStr = oldNum.toString(); // 替换首字符后拼接剩余内容 var newStr = '9' + oldStr.slice(1); // 输出结果为 92341
该方法自动兼容只有1位的数字,slice(1)对长度为1的字符串会返回空值,最终结果就是你要替换的首字符
方法2:正则匹配法(写法简洁)
用^限定匹配字符串开头位置,精准替换第一个字符:
var oldNum = 12341; var newStr = oldNum.toString().replace(/^./, '9'); // 输出结果为 92341
如果你的需求是只有首字符为指定值时才替换,比如只有首字符是1才换成9,把正则改成/^1/即可
方法3:数组操作法(逻辑直观)
把字符串拆成字符数组,修改第一个元素后再拼接回字符串:
var oldNum = 12341; var strArr = oldNum.toString().split(''); strArr[0] = '9'; var newStr = strArr.join(''); // 输出结果为 92341
内容的提问来源于stack exchange,提问作者Shaji
相关产品推荐
相关产品推荐

