基于Javascript中的用户输入生成随机密码

基于Javascript中的用户输入生成随机密码,javascript,string,random,return,Javascript,String,Random,Return,分配是提示用户输入密码长度和字符类型,然后生成一个随机密码。我认为for循环工作不正常。retVal返回为空,因为for循环没有传递任何内容。我试着去掉charAt函数,让Math.floor给我just和index,这给了我unfinedundefined和finedundefined和finedundefined。回到常规的charAt函数,我什么也得不到 //询问长度 var length=prompt您的密码将包含多少个字符?输入一个介于8和128之间的数字; //询问字符类型 var

分配是提示用户输入密码长度和字符类型,然后生成一个随机密码。我认为for循环工作不正常。retVal返回为空,因为for循环没有传递任何内容。我试着去掉charAt函数,让Math.floor给我just和index,这给了我unfinedundefined和finedundefined和finedundefined。回到常规的charAt函数,我什么也得不到

//询问长度 var length=prompt您的密码将包含多少个字符?输入一个介于8和128之间的数字; //询问字符类型 var charType=提示输入字符类型:特殊、数字、大写、小写。; //生成密码 函数生成器密码{ //计算字符类型 var字符集=; 如果charType.toLowerCase===小写{ 字符集=abcdefghijklmnopqrstuvxyz; }如果charType.toLowerCase==大写,则为else{ 字符集=abcdefghijklmnopqrstuvxyz; }如果ChartType.toLowerCase===数值,则为else{ 字符集=0123456789; }如果ChartType.toLowerCase===特殊,则为else{ 字符集=!\$%&'*+,-./:;?@[\]^{124}~; } //返回值 var-retVal=; //对于变量i=0,n=charSet.length;i} 你有几个微妙的问题

prompt返回一个字符串,您需要将其转换为一个数字,以便将其用于长度numberCompt。。。。 字符串toLowerCase是一个方法,而不是一个属性,您必须调用它ChartType.toLowerCase。您也只需要这样做一次,如果您将其设置为变量,就可以避免重新计算它。 您需要的是完整字符集范围内的随机字符,而不是使用charset.length的密码长度。 var length=numbercompthon您的密码有多少个字符?请输入一个介于8和128之间的数字; //询问字符类型 var charType=提示输入字符类型:特殊、数字、大写、小写。; //生成密码 函数生成器密码{ //计算字符类型 var字符集=; var charTypeLower=charType.toLowerCase; 如果charTypeLower==小写{ 字符集=abcdefghijklmnopqrstuvxyz; }如果charTypeLower==大写,则为else{ 字符集=abcdefghijklmnopqrstuvxyz; }如果ChartTypeLower==数值,则为else{ 字符集=0123456789; }如果ChartTypeLower==特殊,则为else{ 字符集=!\$%&'*+,-./:;?@[\]^{124}~; } //返回值 var-retVal=; 对于变量i=0;iChartType.toLowerCase,这是函数的结果。

这有帮助吗?是否还有一种方法可以获取符合多个条件的答案并生成密码?例如,具有大写字母和特殊字符的密码?是的,如果有多个字符串,如abc、abc、,1@3$password=abc[2]+abc[1]+123[2]。这只是一个例子。你可以使用Math.random对其进行随机索引。我对你的代码有一个很小的DYI问题。你能改变一下,只计算一次ChartType.toLowerCase吗?@PM77-1有很大的改进空间,但肯定会的。