Javascript 创建一个简单的唯一预订ID函数
我需要一个特殊的独特的预订ID,这是很容易为客户通过电话读出 长度应为5个字符,且仅使用以下字母:Javascript 创建一个简单的唯一预订ID函数,javascript,Javascript,我需要一个特殊的独特的预订ID,这是很容易为客户通过电话读出 长度应为5个字符,且仅使用以下字母: var letters = "ABCDEFGHJKMNPQRSTUXY"; 我在stackoverflow上找到了这个函数,但很难让它从我的信件中提取字符,并将其自身限制为5个字符 var uniqueId = function() { return Math.random().toString(36).substr(2, 16); }; 任何帮助都将不胜感激:-诸如此类的东西 var字
var letters = "ABCDEFGHJKMNPQRSTUXY";
我在stackoverflow上找到了这个函数,但很难让它从我的信件中提取字符,并将其自身限制为5个字符
var uniqueId = function() {
return Math.random().toString(36).substr(2, 16);
};
任何帮助都将不胜感激:-诸如此类的东西
var字母=ABCDEFGHJKMNPQRSTUXY;
var uniqueId=函数{
var text=;
对于变量i=0;i<5;i++{
text+=letters.characterMath.floorMath.random*letters.length;
}
返回文本;
};
console.loguniqueId 像这样的
var字母=ABCDEFGHJKMNPQRSTUXY;
var uniqueId=函数{
var text=;
对于变量i=0;i<5;i++{
text+=letters.characterMath.floorMath.random*letters.length;
}
返回文本;
};
console.loguniqueId 请参见下面的函数,uniqueId对于一个由五个字符组成的字符串,函数可能会多次生成相同的字符串,因此它不是唯一的:
function uniqueId(stringLength, possible)
{
stringLength = stringLength || 5;
possible = possible || "ABCDEFGHJKMNPQRSTUXY";
var text = "";
for(var i = 0; i < stringLength; i++) {
var character = getCharacter(possible);
while(text.length > 0 && character === text.substr(-1)) {
character = getCharacter(possible);
}
text += character;
}
return text;
}
function getCharacter(possible) {
return possible.charAt(Math.floor(Math.random() * possible.length));
}
请参见下面的函数,uniqueId对于一个由五个字符组成的字符串,函数可能会多次生成相同的字符串,因此它不是唯一的:
function uniqueId(stringLength, possible)
{
stringLength = stringLength || 5;
possible = possible || "ABCDEFGHJKMNPQRSTUXY";
var text = "";
for(var i = 0; i < stringLength; i++) {
var character = getCharacter(possible);
while(text.length > 0 && character === text.substr(-1)) {
character = getCharacter(possible);
}
text += character;
}
return text;
}
function getCharacter(possible) {
return possible.charAt(Math.floor(Math.random() * possible.length));
}
好吧,有些人刚刚打败了我,但这里有一个选择,是相当容易阅读。它还包括不允许2个连续字符与OP在随后的评论中添加的字符相同
function uniqueId()
{
var letters = "ABCDEFGHJKMNPQRSTUXY";
var result="";
while (result.length<5)
{
var rand_int = Math.floor((Math.random() * 19) + 1);
var rand_chr= letters[rand_int];
if (result.substr(-1, 1)!=rand_chr) result+=rand_chr;
}
return (result);
}
好吧,有些人刚刚打败了我,但这里有一个选择,是相当容易阅读。它还包括不允许2个连续字符与OP在随后的评论中添加的字符相同
function uniqueId()
{
var letters = "ABCDEFGHJKMNPQRSTUXY";
var result="";
while (result.length<5)
{
var rand_int = Math.floor((Math.random() * 19) + 1);
var rand_chr= letters[rand_int];
if (result.substr(-1, 1)!=rand_chr) result+=rand_chr;
}
return (result);
}
为什么只有5个?您将自己限制为少量的唯一订单。除非你希望保持小规模?见小规模。。试着计算一下20x20x20x20x20:-D如果我有那么多的预订,我保证将其扩展到6个字符:-D检查我链接的副本我可以在芭堤雅免费住宿吗?:D@torbenrudgaard编辑您的帖子以添加此要求。我看了你的个人资料他为什么只有5个人?您将自己限制为少量的唯一订单。除非你希望保持小规模?见小规模。。试着计算一下20x20x20x20x20:-D如果我有那么多的预订,我保证将其扩展到6个字符:-D检查我链接的副本我可以在芭堤雅免费住宿吗?:D@torbenrudgaard编辑您的帖子以添加此要求。我看了你的个人资料heheis有办法避免两个相同的字母并排出现吗?ABCAB正常-ABBCD不正常。是的,请参阅更新。完美正是我所需要的-Ganhamar你刚刚进入我们的全球函数库:-谢谢。@torbenrudgaard失败者有免费的芭堤雅之旅吗?:有没有办法避免两个相同的字母并排出现?ABCAB正常-ABBCD不正常。是的,请参阅更新。完美正是我所需要的-Ganhamar你刚刚进入我们的全球函数库:-谢谢。@torbenrudgaard失败者有免费的芭堤雅之旅吗?:有没有办法避免两个相同的字母并排出现?ABCAB可以-ABBCD不行。像这个例子可以解决这个问题-因为演示只使用AB字母-现在考虑到检查字母-检查索引也可能是一种可能性-有没有办法避免两个相同的字母并排出现?ABCAB是可以的-ABBCD不是。像这个例子可以解决这个问题-因为演示只使用AB字母-现在考虑到检查字母-检查索引也可以