Javascript 从字符串中随机抽取字母
我想从字符串中删除3个随机字母 我可以使用类似Javascript 从字符串中随机抽取字母,javascript,jquery,arrays,substr,Javascript,Jquery,Arrays,Substr,我想从字符串中删除3个随机字母 我可以使用类似substr()或slice()的函数,但它不允许我取出随机字母 这是我现在的演示 任何帮助都将不胜感激 您可以将字符串转换为数组、随机项,然后再转换为字符串: var arr = str.split(''); for(var i=0; i<3; ++i) arr.splice(Math.floor(Math.random() * arr.length), 1); str = arr.join(''); var arr=str.sp
substr()
或slice()
的函数,但它不允许我取出随机字母
这是我现在的演示
任何帮助都将不胜感激 您可以将字符串转换为数组、随机项,然后再转换为字符串:
var arr = str.split('');
for(var i=0; i<3; ++i)
arr.splice(Math.floor(Math.random() * arr.length), 1);
str = arr.join('');
var arr=str.split(“”);
对于(var i=0;i,可以将字符串转换为数组、随机项和返回字符串:
var arr = str.split('');
for(var i=0; i<3; ++i)
arr.splice(Math.floor(Math.random() * arr.length), 1);
str = arr.join('');
var arr=str.split(“”);
对于(var i=0;ivar str=“cat123”,
amountLetters=3,
随机字符串=”;
对于(变量i=0;i
小提琴:
var str=“cat123”,
amountLetters=3,
随机字符串=”;
对于(变量i=0;i
小提琴:
您可以在不使用任何参数的情况下使用拆分方法。
这将以数组的形式返回所有字符
然后可以使用中所述的任意随机化器函数,然后使用该位置获取该位置处的角色
看看这里的@my实现
var str = "cat123";
var strArray = str.split("");
function getRandomizer(bottom, top) {
return Math.floor( Math.random() * ( 1 + top - bottom ) ) + bottom;
}
alert("Total length " + strArray.length);
var nrand = getRandomizer(1, strArray.length);
alert("Randon number between range 1 - length of string " + nrand);
alert("Character @ random position " + strArray[nrand]);
Code@here您可以在不使用任何参数的情况下使用split方法。
这将以数组的形式返回所有字符
然后可以使用中所述的任意随机化器函数,然后使用该位置获取该位置处的角色
看看这里的@my实现
var str = "cat123";
var strArray = str.split("");
function getRandomizer(bottom, top) {
return Math.floor( Math.random() * ( 1 + top - bottom ) ) + bottom;
}
alert("Total length " + strArray.length);
var nrand = getRandomizer(1, strArray.length);
alert("Randon number between range 1 - length of string " + nrand);
alert("Character @ random position " + strArray[nrand]);
代码@here表示
将字符串切片两次[…]要比先使用拆分再使用联接[…]更快
因此,虽然效果很好,但我认为更快的实施方式是:
function removeRandom(str, amount)
{
for(var i = 0; i < amount; i++)
{
var max = str.length - 1;
var pos = Math.round(Math.random() * max);
str = str.slice(0, pos) + str.slice(pos + 1);
}
return str;
}
函数删除对象(str,amount)
{
对于(变量i=0;i
另请参见。说明
将字符串切片两次[…]要比先使用拆分再使用联接[…]更快
因此,虽然效果很好,但我认为更快的实施方式是:
function removeRandom(str, amount)
{
for(var i = 0; i < amount; i++)
{
var max = str.length - 1;
var pos = Math.round(Math.random() * max);
str = str.slice(0, pos) + str.slice(pos + 1);
}
return str;
}
函数删除对象(str,amount)
{
对于(变量i=0;i
另请参见。您可以对字符串中的字符进行洗牌,然后删除前3个字符
var str = 'congratulations';
String.prototype.removeItems = function (num) {
var a = this.split(""),
n = a.length;
for(var i = n - 1; i > 0; i--) {
var j = Math.floor(Math.random() * (i + 1));
var tmp = a[i];
a[i] = a[j];
a[j] = tmp;
}
return a.join("").substring(num);
}
alert(str.removeItems(3));
您可以洗牌字符串中的字符,然后删除前3个字符
var str = 'congratulations';
String.prototype.removeItems = function (num) {
var a = this.split(""),
n = a.length;
for(var i = n - 1; i > 0; i--) {
var j = Math.floor(Math.random() * (i + 1));
var tmp = a[i];
a[i] = a[j];
a[j] = tmp;
}
return a.join("").substring(num);
}
alert(str.removeItems(3));
从字符串中删除一个随机的3个字母序列?如abc'123'或'bc1'23,其中''表示删除的内容?从字符串中删除一个随机的3个字母序列?如abc'123'或'bc1'23,其中''表示删除的内容?是否可以使其不删除3个字母…而将单词的任何3个字母替换为3个random字母?是否可以这样做,而不是删除3个字母…用3个随机字母替换单词的任何3个字母?是否可以这样做,而不是删除3个字母…用3个随机字母替换单词的任何3个字母?是否可以这样做,而不是删除3个字母ters…用3个随机字母替换单词的任何3个字母?是否可以这样做,而不是删除3个字母…用3个随机字母替换单词的任何3个字母?当然可以。function subsctitute(str){var pos=Math.floor(Math.random()*str.length);返回str.substring(0,pos)+getRandomLetter()+str.substring(pos+1);}函数getRandomLetter(){var可能=“abcdefghijklmnopqrstuvxyzabcdefghijklmnopqrstuvxyz012456789”;var pos=Math.floor(Math.random()*letters.length);return letters.charAt(pos);}
是否有可能不删除3个字母,而是用3个随机字母替换单词中的任何3个字母?当然可以。函数子字符串(str){var pos=Math.floor(Math.random()*str.length);返回str.substring(0,pos)+getRandomLetter()+str.substring(pos+1);}函数getRandomLetter(){var-pos=Math.floor(Math.random()*letters.length);return-letters.charAt(pos);}
是否可以这样做,而不是删除3个字母…用3个随机字母替换单词的任何3个字母?@user4756836是:arr[Math.floor](Math.random()*arr.length)]=randomLetter()
。randomLetter
的定义将根据您需要的字符(a-z、a-z、数字、拉丁字母1等)而有所不同。[Math.floor(Math.random()*arr.length)]=randomLetter()
。randomLetter
的定义将根据需要的字符(a-z、a-z、数字、拉丁字母1等)而有所不同.是否可以这样做,而不是删除3个字母…用3个随机字母替换单词的任何3个字母?是否可以这样做,而不是删除3个字母…用3个随机字母替换单词的任何3个字母?是否可以这样做,而不是删除3个字母…重播用3个随机字母替换单词中的任意3个字母?@user4756836你能更具体一点吗?你想用随机位置替换随机字符吗?我想用a-z中的任意字母替换单词中的任意3个随机字母。例如,如果单词是Hello Kitty…它可能会变为Hezls KiltyYeah。这很简单。用all定义一个数组英文字母。从随机数生成器生成2个数字。Num1将是