保留格式时,将字符串替换为随机字符

时间:2019-08-22 21:29:11

标签: javascript node.js

是否有一种简单的方法可以在保留格式的同时替换字符串中的字符?例如,假设我有一个字符串,其中包含电话号码111-222-3333。

我想将该数字更改为随机生成的数字,但保留原始格式(所有数字和破折号)。

所以随机输出可能类似于:720-190-6542

2 个答案:

答案 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,"-");