2009-06-21 5 views
0
function randomString(len) { 
    // A random string of length 'len' made up of alphanumerics. 
    var out = ''; 
    for (var i=0; i<len; i++) { 
     var random_key = 48 + Math.floor(Math.random()*42); //0-9,a-z 
     out += String.fromCharCode(random_key); 
    } 
    window.alert(out); 
    return out; 
} 

Autant que je peux dire le résultat de String.fromCharCode dépend du système et/ou du navigateur. Toutes les solutions de contournement que j'ai vues sont pour quand vous capturez réellement des keycodes, ne les générant pas. Existe-t-il un moyen plus fiable de le faire (comme la conversion de codes ASCII?).besoin d'une alternative fiable à String.fromCharCode

Répondre

2

var random_key = 48 + Math.floor (Math.random() * 42); // 0-9, a-z

Le code et le commentaire ne correspondent pas. Les caractères qui peuvent être créés sont compris entre 0-9,:,;, <, =,>,?, @ Et A-Z.

Les codes de caractères de cette plage se trouvent dans le jeu de caractères ASCII, ils sont donc identiques pour tous les jeux de caractères occidentaux couramment utilisés. La méthode fromCharCode doit utiliser le jeu de caractères que vous avez spécifié pour la page, mais dans la plage que vous utilisez, cela n'a pas d'importance.

Faire la gamme de sept petits, et ajouter 39 si ce n'est pas un chiffre pour obtenir 0-9 et az:

function randomString(len) { 
    // A random string of length 'len' made up of alphanumerics. 
    var out = ''; 
    for (var i=0; i<len; i++) { 
     var random_key = 48 + Math.floor(Math.random() * 36); 
     if (random_key > 57) random_key += 39; 
     out += String.fromCharCode(random_key); 
    } 
    window.alert(out); 
    return out; 
} 
+0

Cela implique ce tableau est faux: http://www.cambiaresearch.com/c4 /702b8cd1-e5b0-42e6-83ac-25f0306e3e25/Javascript-Char-Codes-Key-Codes.aspx – SpliFF

+0

La table est pour les codes clés, pas les codes de caractères. Vous l'utilisez par exemple pour déterminer la touche enfoncée dans l'événement keydown. Notez également qu'il y a un écart dans le tableau entre 57 et 65. – Guffa