【发布时间】:2013-05-11 08:36:27
【问题描述】:
我可以在 C# 中执行此操作,但无法将其转换为 Javascript。我找到了这篇文章“Generate random password string with requirements in javascript”,但我无法根据自己的要求进行自定义:
密码长度应至少为 8 个字符,最多 13 个字符,并且必须包含以下每个字符串集合中的至少一个字符:
string specialCharacters = "~!@#$%^&*()_+=-|\\}]{[\"':;?/>.<,";
string numbers = "0123456789";
string smallLetters = "abcdefghijklmnopqrstuvwxyz";
string capitalLetters = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
你能帮忙吗? 非常感谢!
编辑:
这是我的 C# 代码。抱歉,有点长:
private string CreateRandomPassword(int passwordLength)
{
string specialCharacters = "~!@#$%^&*()_+=-|\\}]{[\"':;?/>.<,";
string numbers = "0123456789";
string smallLetters = "abcdefghijklmnopqrstuvwxyz";
string capitalLetters = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
string allowedChars = "";
char[] chars = new char[passwordLength];
string password = String.Empty;
Random rd = new Random();
int ctr = 0;
int prop = 4;
if(!_password.ContainsSpecialCharacters && !_password.ContainsNumbers && !_password.ContainsSmallLetters && !_password.ContainsCapitalLetters)
return String.Empty;
string sc = "";
string num = "";
string sl = "";
string cl = "";
if(_password.ContainsSpecialCharacters)
{
// Get a special character randomly
rd = new Random();
sc = specialCharacters[rd.Next(0, specialCharacters.Length)].ToString();
allowedChars += specialCharacters;
}
else
{
prop--;
}
if(_password.ContainsNumbers)
{
// Get a random number randomly
rd = new Random();
num = numbers[rd.Next(0, numbers.Length)].ToString();
allowedChars += numbers;
}
else
{
prop--;
}
if(_password.ContainsSmallLetters)
{
// Get a small letter randomly
rd = new Random();
sl = smallLetters[rd.Next(0, smallLetters.Length)].ToString();
allowedChars += smallLetters;
}
else
{
prop--;
}
if(_password.ContainsCapitalLetters)
{
// Get a capital letter randomly
rd = new Random();
cl = capitalLetters[rd.Next(0, capitalLetters.Length)].ToString();
allowedChars += capitalLetters;
}
else
{
prop--;
}
for (; ctr < passwordLength - prop; ctr++)
password += allowedChars[rd.Next(0, allowedChars.Length)];
return password + sc + num + sl + cl;
}
【问题讨论】:
-
您需要什么帮助?你的问题到底是什么?你试过什么?为什么它不起作用?这会做:“~0aAAAAA”吗?
-
我无法将我的 C# 代码翻译成 Javascript
-
那么您的所有允许字符集是什么?只是这四组中的所有角色吗?
-
@yonan2236:代码非常简单,就像您的 C# 代码一样。你在翻译方面有什么尝试,你在哪里有问题?
-
在创建此站点并构建常见问题解答时考虑了该站点对全世界的可见性。糟糕的英语是可以容忍的,但“我想要这个网站的代码,只是我想把它转换成另一种语言——请帮忙”是不行的。
标签: javascript