在javascript中,如何用随机数替换每个破折号(-)?

在javascript中,如何用随机数替换每个破折号(-)?,javascript,regex,random,str-replace,Javascript,Regex,Random,Str Replace,我有一些代码,比如ABCDE----ABCD----ABC---,其中每个(-)都需要是一个随机数 使用replace函数将单个破折号更改为随机数没有问题,但我不知道如何将每个破折号设置为随机数。注意:每个数字不需要是唯一的 这就是我现在所处的位置,但我需要的是数字不尽相同 您可以使用函数作为中的第二个参数 在一个循环中完成。另外,您实际上并不需要正则表达式,因为您只是在寻找字符串。如果您确实需要regexp更改str.indexOf(“-”)=-1bystr.match(regexp)!=空。

我有一些代码,比如ABCDE----ABCD----ABC---,其中每个(-)都需要是一个随机数

使用replace函数将单个破折号更改为随机数没有问题,但我不知道如何将每个破折号设置为随机数。注意:每个数字不需要是唯一的

这就是我现在所处的位置,但我需要的是数字不尽相同


您可以使用函数作为中的第二个参数


在一个循环中完成。另外,您实际上并不需要正则表达式,因为您只是在寻找字符串。如果您确实需要regexp更改
str.indexOf(“-”)=-1
by
str.match(regexp)!=空
。这种方法也不需要
g
标志

var str = "ABCDE-----FGABC--";
var number;
while (str.indexOf("-") !== -1) {
    number = Math.floor(Math.random() * 10);
    str = str.replace("-", number);
}
return str;
输出:

ABCDE92136FGABC38

作为
replace
方法的替代方法,您可以使用String方法对代码进行标记,然后应用数组方法将值与中替换的适当数字重新联接

函数randomNumberFromRange(最小值、最大值){
var str=“ABCDE-----FGABC--”;
返回str.split(“-”).reduce(函数(prev,val){
返回上一个值+随机数(最小值、最大值)+val;
});
}
函数随机数(最小值、最大值){
返回Math.floor(Math.random()*(max-min+1)+min);
}
//演示代码
document.getElementById(“随机”).onclick=function(){
document.getElementById(“code”).innerHTML=randomNumberFromRange(1,9);
};

获取代码

不错。基于相同理念的更干净版本:
var str = "ABCDE-----FGABC--";
var number;
while (str.indexOf("-") !== -1) {
    number = Math.floor(Math.random() * 10);
    str = str.replace("-", number);
}
return str;
ABCDE92136FGABC38