我使用node.js中的以下函数生成随机字符串。我想知道是否有任何方法可以在每个随机生成的字符串中使用公共字符串正确创建文本字符串。
编辑:公共字符串可以位于生成的字符串的任何位置
例如:
随机生成的字符串 - Cxqtooxyy4
我可以添加 ' abc' 或 ' ABC' 在这个字符串中,分别是 Cxqtoabcoxyy4 或 CxqtoABCoxyy4 。
我的代码 -
var randomTextArrayGeneration = function(size)
{
var text = "";
var possible = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
for(var i=0;i<size;i++)
text += possible.charAt(Math.floor(Math.random() * possible.length));
return text;
}
谁能告诉我该怎么做?任何帮助都非常有帮助。
答案 0 :(得分:1)
算法的草图如下:
size - <FIXED_STRING>.length
<FIXED_STRING>
附加到生成的字符串完成。
如果是size < <FIXED_STRING>.length
,那么你需要提供更多关于应该发生什么的讨论。
答案 1 :(得分:1)
var n = text.length; //The size of your random string
var randomPosition = Math.floor((Math.random() * n) + 1); //Generate a random number between 1 and the size of your string
//Separate your string in 2 strings
var text1 = text.substring(1, randomPosition);
var text2 = text.substring(randomPosition, n);
//Create your final string by adding the common string between your two halves
var textFinal = text1 + commonString + text2;
return textFinal;
我不记得究竟是如何工作的.substring()
,你可能想在某些地方改变1乘以。
答案 2 :(得分:1)
您可以使用String.prototype.slice()
从possible
中选择0-n个字符,以插入从randomTextArrayGeneration
返回的字符串中的随机索引。如果将0
传递给randomTextArrayGeneration
,则possible
中的所选字符串将设置为结果
var randomTextArrayGeneration = function(size, from, to) {
var text = "";
var possible = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
for (var i = 0; i < size; i++) {
text += possible.charAt(Math.floor(Math.random() * possible.length))
};
var len = Math.floor(Math.random() * text.length - 3);
var res = text.slice(0, len) + possible.slice(from, to).toLowerCase() + text.slice(len);
return res
}