如何在javascript中替换字符串中的随机字符
我想替换从另一个字符串中随机选取的字符如何在javascript中替换字符串中的随机字符,javascript,algorithm,Javascript,Algorithm,我想替换从另一个字符串中随机选取的字符 var charToTakeFrom = '0x080,0x081,0x082,0x083,0x084,0x085,0x086,0x087,0x088,0x089,0x090'; var givenString = 'The brown fox jumps over the pink fence.'; 结果字符串应使用charToTakeFrom字符串中的随机字符替换givenString中的随机字符 最简单的方法是编写for循环,将givenStrin
var charToTakeFrom = '0x080,0x081,0x082,0x083,0x084,0x085,0x086,0x087,0x088,0x089,0x090';
var givenString = 'The brown fox jumps over the pink fence.';
结果字符串应使用charToTakeFrom字符串中的随机字符替换givenString中的随机字符
最简单的方法是编写for循环,将givenString中的随机字符数替换为charToTakeFrom中的随机字符数
有更简单/更快的方法吗?整句话:
var ctu=[],s=“这只鸟雄伟地飞越山谷寻找蠕虫。”,newstring=“”;
ctu[0]=“derp4561”;
ctu[1]=“derp12534”;
ctu[2]=“derp684”;
var s=s.split(“”);
对于(var i=0;i整词:
var ctu=[],s=“这只鸟雄伟地飞越山谷寻找蠕虫。”,newstring=“”;
ctu[0]=“derp4561”;
ctu[1]=“derp12534”;
ctu[2]=“derp684”;
var s=s.split(“”);
对于(var i=0;i我不确定这是否是最快的方法,但无论如何它已经足够简单了=)希望你喜欢它
EDIT2在JS上完成
var complexity = 0.3; // 0 to .99 if more then more letters in src string will be replaced by random ones
var randsArr = ("!@#$)**($#*)($#$()$()#$%^&*()%^$#$$#$^").split('').sort(function () { return 0.5 - Math.random()});
var srcArr = ("The brown fox jumps over the pink fence.").split('');
result = $.map(srcArr,function (el) { return (Math.random()>complexity) ? el : (randsArr.length) ? randsArr.shift() : el ; }).join('');
关于JSFiddle
旧php版本,以防有人需要:
$rands = "!@#$%^&*()";
$srcStr = "The brown fox jumps over the pink fence.";
$srcArr = str_split ($srcStr);
$randsArr = array_merge(str_split($rands),array_fill(strlen($rands),strlen($srcStr)-strlen($rands),false));
shuffle($randsArr);
echo implode(array_map(function($letter,$replacement) { return ($replacement!=false)?$replacement:$letter; },$srcArr,$randsArr));
编辑我的错…我在想它是关于php=(给我几分钟时间在JS上重写它我不确定这是否是最快的方法,但无论如何它已经够古怪了=)希望你喜欢它
EDIT2在JS上完成
var complexity = 0.3; // 0 to .99 if more then more letters in src string will be replaced by random ones
var randsArr = ("!@#$)**($#*)($#$()$()#$%^&*()%^$#$$#$^").split('').sort(function () { return 0.5 - Math.random()});
var srcArr = ("The brown fox jumps over the pink fence.").split('');
result = $.map(srcArr,function (el) { return (Math.random()>complexity) ? el : (randsArr.length) ? randsArr.shift() : el ; }).join('');
关于JSFiddle
旧php版本,以防有人需要:
$rands = "!@#$%^&*()";
$srcStr = "The brown fox jumps over the pink fence.";
$srcArr = str_split ($srcStr);
$randsArr = array_merge(str_split($rands),array_fill(strlen($rands),strlen($srcStr)-strlen($rands),false));
shuffle($randsArr);
echo implode(array_map(function($letter,$replacement) { return ($replacement!=false)?$replacement:$letter; },$srcArr,$randsArr));
编辑我的错…我想这是关于php=(给我几分钟时间在JS上重写它首先,你最好使用数组。然后:
var charToTakeFrom = [0x080,0x081,0x082,0x083,0x084,0x085,0x086,0x087,0x088,0x089,0x090];
var givenString = 'The brown fox jumps over the pink fence.';
var randomNumber = Math.floor((Math.random() * 10)) + 1); //Computes a random number from 1 to 11
var slicer = randomNumber - 1;
var slice = charToTakeFrom.slice(slicer, randomNumber); //get the character
我假设您已经知道如何替换字符串。首先,您最好使用数组。然后:
var charToTakeFrom = [0x080,0x081,0x082,0x083,0x084,0x085,0x086,0x087,0x088,0x089,0x090];
var givenString = 'The brown fox jumps over the pink fence.';
var randomNumber = Math.floor((Math.random() * 10)) + 1); //Computes a random number from 1 to 11
var slicer = randomNumber - 1;
var slice = charToTakeFrom.slice(slicer, randomNumber); //get the character
我假设你已经知道如何替换字符串。我将为你做一个快速示例。我添加了我的答案+一个工作示例,请告诉我这是否是你需要的。在JS=)上重写我的答案我将为你做一个快速示例。我添加了我的答案+一个工作示例,请告诉我这是否是你需要的。在JS=)上重写我的答案)谢谢Zachrip。这很好,但不是我想要的。我正在寻找从givenString中随机选取的单个字符替换为从charToTakeFrom(数组或字符串)中随机选取的字符。@RamIyer哦,好的,那也很容易。我可以再编一个例子(只是稍微调整一下)@RamIyer更新了,希望这就是你的意思。谢谢Zachrip。这很好,但不是我想要的。我正在寻找从givenString中随机选取的单个字符替换为从charToTakeFrom(数组或字符串)中随机选取的字符。@RamIyer哦,好的,那也很容易。我可以再举一个例子(只是稍微调整一下)@RamIyer更新,希望这就是你的意思。