我找到了这个脚本
<script type="text/javascript">
$(document).ready(function() {
jQuery.fn.wordgen = function(length){
var i = 0;
var word = "";
var vowels = new Array("a","e","u","i","o");
var consonants = new Array("q","w","r","t","p","s","d","f","g","h","j","k","l","z","x","c","v","b","n","m");
while(i < (length/2)){
i++;
word += vowels[Math.floor(Math.random() * vowels.length)] + consonants[Math.floor(Math.random() * consonants.length)];
}
$(this).val(word);
}
$("#generarmu").click(function(){
var longitud = $("#largomu").val();
$("#nombremu").wordgen(longitud);
});
$("#largomu").change(function(){
var longitud = $("#largomu").val();
$("#nombremu").wordgen(longitud);
});
});
</script>
我正在使用
Longitud del nombre:
<select id="largomu" name="largomu">
<option value="4">4</option><option value="5">5</option><option value="6">6</option><option value="7">7</option><option value="8">8</option><option value="9">9</option><option value="10">10</option><option value="11">11</option><option value="12">12</option> </select>
<br/>
<input id="nombremu" value="" style="padding-left:10px;height:25px;text-transform:uppercase;width:340px;"/>
<input type="input" id="generarmu" class="search_submit" style="width:200px;height:18px;" value="Generar!">
但我的字符串长度都有问题,连字符串的长度总是+1(奇数)
你可以在这里查看
提前谢谢
答案 0 :(得分:0)
因为even number / 2
是偶数,然后在i
之前停止number/2
之前,请检查您的情况i < (length/2)
可能的修复:
var stop_condition = length/2;
if (stop_condition % 2 === 0 )
stop_condition += 1;
while(i < stop_condition)
//continue
答案 1 :(得分:0)
我不了解JQuery。但基于代码中的逻辑,这是我可以推断的:
len = 5
len / 2 = 2.5
I = 0
Iter1: 0 <2.5 - 执行
Iter 2: 1&lt; 2.5 - 执行
Iter 3: 2&lt; 2.5 - 执行
另外,好像你正在减半,并做了两次加词的事情。
所以5/2 = 2.5
基于上述 - 执行3次...并基于逻辑(因为它似乎执行了两次),3x2 =总共6个字符。
编辑: word + =元音[Math.floor(Math.random()* vowels.length)] +辅音[Math.floor(Math.random()* consonants.length)];
上述行每次迭代添加两次。因此,任何迭代计数(偶数或奇数),单词都会被添加两次,总是显示偶数。