是否有一种简单的方法可以在保留格式的同时替换字符串中的字符?例如,假设我有一个字符串,其中包含电话号码111-222-3333。
我想将该数字更改为随机生成的数字,但保留原始格式(所有数字和破折号)。
所以随机输出可能类似于:720-190-6542
答案 0 :(得分:1)
当然可以,但这取决于您要维护的格式。大多数操作可以使用string replace通过regex完成。对于您的示例,这应该可以解决问题:
let number = "123-456-7890";
let numRegex = /\d/g; //this regex finds all instances of digits
let randomNumber = number.replace(
numRegex,
function(oldNum){ //function to choose what to replace found digits with
return Math.floor(Math.random() * 10); //randomly chooses an int from 0-9 for each replacement
});
console.log(randomNumber); //prints a random phone number
答案 1 :(得分:0)
对数字选项使用randomstring:
const randomstring = require('randomstring');
let randomNumber = randomstring.generate(options = {
length: 10,
charset: 'numeric'
});
String.prototype.splice = function(indx, rem, str) {
return this.slice(0, indx) + str + this.slice(indx + Math.abs(rem));
};
var result = randomNumber.toString().splice(3,0,"-").splice(7,0,"-");