Générer des nombres et des chaînes aléatoires en JavaScript
La possibilité de générer des nombres aléatoires ou des chaînes alphanumériques s'avère utile dans de nombreuses situations. Vous pouvez l'utiliser pour faire apparaître des ennemis ou de la nourriture à différents endroits du jeu. Vous pouvez également l'utiliser pour suggérer des mots de passe aléatoires aux utilisateurs ou créer des noms de fichiers pour enregistrer des fichiers.
J'ai écrit un tutoriel sur la façon de générer des chaînes alphanumériques aléatoires en PHP. J'ai dit au début de cet article que peu d'événements sont véritablement aléatoires, et il en va de même pour la génération de nombres aléatoires ou de chaînes.
Dans ce tutoriel, je vais vous montrer comment générer une chaîne alphanumérique pseudo-aléatoire en JavaScript.
Générer des nombres aléatoires en JavaScript
Commençons par générer des nombres aléatoires. La première méthode qui me vient à l’esprit est Math.random()
, qui renvoie un nombre pseudo-aléatoire à virgule flottante. Le nombre aléatoire sera toujours supérieur ou égal à 0 et inférieur à 1.
La distribution des nombres renvoyés dans cette plage est presque uniforme, cette méthode peut donc bien générer des nombres aléatoires sans écarts évidents dans l'utilisation quotidienne. Voici le résultat de dix appels à la méthode Math.random()
:
for(let i = 0; i < 10; i++) { console.log(Math.random()); } /* Outputs: 0.9981169188071801 0.7073616929117277 0.05826679080842556 0.30779242012809105 0.37282814053539926 0.8991639574910759 0.5851162879630685 0.40572834956467063 0.5286480734412005 0.07898699710613699 */
Générer des entiers aléatoires dans une plage
Comme vous l'avez vu dans la section précédente, Math.random()
nous donnera un nombre aléatoire compris entre 0 (inclus) et 1 (exclusif). Supposons que nous voulions un entier aléatoire compris entre 0 (inclus) et 100 (exclusif). Tout ce que nous devons faire ici est de multiplier la plage d'origine par 100.
En prenant comme exemple la première valeur de sortie de l'extrait de code ci-dessus, 0,9981169188071801 deviendra 99,81169188071801 une fois multiplié par 100. Maintenant, nous pouvons utiliser la méthode Math.floor()
, qui arrondira à l’inférieur et renverra le plus grand entier dont la valeur est inférieure ou égale à 99,81169188071801. En d’autres termes, cela nous donnera 99.
L'extrait de code suivant bouclera 10 fois pour afficher toutes ces étapes appliquées à différents nombres.
const max_limit = 100; for(let i = 0; i < 10; i++) { let random_float = Math.random(); let scaled_float = random_float * max_limit; let random_integer = Math.floor(scaled_float); let rf_str = random_float.toString().padEnd(20, ' '); let sf_str = scaled_float.toString().padEnd(20, ' '); let ri_str = random_integer.toString().padStart(2, ' '); console.log(`Random Float: ${rf_str} Scaled Float: ${sf_str} Random Integer: ${ri_str}`); } /* Outputs: Random Float: 0.7976037763162469 Scaled Float: 79.76037763162469 Random Integer: 79 Random Float: 0.3794078358214559 Scaled Float: 37.94078358214558 Random Integer: 37 Random Float: 0.5749118617425708 Scaled Float: 57.49118617425708 Random Integer: 57 Random Float: 0.7110572178100005 Scaled Float: 71.10572178100006 Random Integer: 71 Random Float: 0.9157559644743132 Scaled Float: 91.57559644743132 Random Integer: 91 Random Float: 0.8773095295734263 Scaled Float: 87.73095295734264 Random Integer: 87 Random Float: 0.7714603913623834 Scaled Float: 77.14603913623834 Random Integer: 77 Random Float: 0.6431998616346499 Scaled Float: 64.31998616346499 Random Integer: 64 Random Float: 0.7909155691442253 Scaled Float: 79.09155691442254 Random Integer: 79 Random Float: 0.1219575935563590 Scaled Float: 12.19575935563590 Random Integer: 12 */
Maintenant que vous comprenez la logique derrière la multiplication et l'arrondi, nous pouvons écrire une fonction pour générer des entiers aléatoires dans la limite maximale.
function max_random_number(max) { return Math.floor(Math.random() * max); } for(let i = 0; i < 10; i++) { console.log(max_random_number(100)); } /* Outputs: 35 23 92 94 42 9 12 56 40 21 */
Et si vous souhaitez générer des nombres aléatoires supérieurs à un minimum spécifié mais inférieurs à un maximum ?
Dans ce cas, vous pouvez ajouter la valeur minimale au début pour vous assurer que le nombre obtenu est au moins égal à la valeur minimale. Après cela, vous pouvez simplement générer un nombre aléatoire et appuyer sur max - min
pour le mettre à l'échelle et l'ajouter à la plus petite valeur possible.
function min_max_random_number(min, max) { return min + Math.floor(Math.random() * (max - min)); } for(let i = 0; i < 10; i++) { console.log(min_max_random_number(50, 100)); } /* Outputs: 96 81 95 56 73 72 71 90 51 53 */
Générer des nombres aléatoires cryptographiquement sécurisés
La méthodeMath.random()
方法不适合生成加密安全的随机数,但是 Crypto.getRandomValues()
n'est pas adaptée pour générer des nombres aléatoires cryptographiquement sécurisés, mais la méthode Crypto.getRandomValues()
peut nous aider ici. Cette méthode remplit le tableau transmis avec des nombres pseudo-aléatoires cryptographiquement sécurisés. Gardez à l’esprit que l’algorithme utilisé pour générer ces nombres aléatoires peut varier d’un agent utilisateur à l’autre.
Comme je l'ai mentionné précédemment, vous devez transmettre un nombre entier TypedArray
à la méthode afin qu'elle la remplisse de valeurs aléatoires. Le contenu original du tableau sera remplacé. Le code suivant remplira notre tableau de dix éléments avec des entiers aléatoires.
let random_values = new Uint8Array(10); console.log(random_values); // Outputs: Uint8Array(10) [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ] crypto.getRandomValues(random_values); console.log(random_values); // Outputs: Uint8Array(10) [ 207, 209, 1, 145, 70, 111, 21, 141, 54, 200 ]
Unit8Array()
Le constructeur nous donne un tableau de 10 entiers non signés de 8 bits. Les valeurs du tableau sont toutes initialisées à zéro.
Une fois que nous transmettons ce tableau à getRandomValues()
方法,随机数的值将保持在 0 到 255 之间。您可以使用其他类型数组来生成不同范围的随机数。例如,使用 Int8Array()
构造函数将为我们提供一个整数值在 -128 到 127 之间的数组。同样,使用 Uint16Array()
, cela nous donnera un tableau de valeurs entières jusqu'à 65 535. p>
let random_values = new Int8Array(10); console.log(random_values); // Outputs: Int8Array(10) [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ] crypto.getRandomValues(random_values); console.log(random_values); // Outputs: Int8Array(10) [ -82, -106, 87, 64, 42, -36, -53, 27, -38, 4 ] let random_values = new Uint16Array(10); console.log(random_values); // Outputs: Uint16Array(10) [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ] crypto.getRandomValues(random_values); console.log(random_values); // Outputs: Uint16Array(10) [ 47615, 60195, 53177, 15169, 215, 4928, 12200, 6307, 30320, 20271 ]
Générer des chaînes alphanumériques aléatoires en JavaScript
Nous allons maintenant utiliser les connaissances acquises dans la section précédente pour générer une chaîne alphanumérique aléatoire en JavaScript.
Le concept est très simple. Nous commencerons par une chaîne contenant tous les caractères requis. Dans cet exemple, la chaîne sera composée de lettres minuscules, de lettres majuscules et de chiffres de 0 à 9. Comme vous le savez peut-être déjà, nous pouvons accéder à un caractère à une position spécifique dans une chaîne en transmettant une valeur d'index à la chaîne.
Pour générer une chaîne alphanumérique aléatoire, tout ce que nous devons faire est de générer un nombre aléatoire, puis d'accéder au caractère à cet index aléatoire pour l'ajouter à notre chaîne aléatoire. L'extrait de code suivant résume le tout dans une petite fonction astucieuse :
const char_set = 'abcdefghijlkmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789'; function max_random_number(max) { return Math.floor(Math.random() * max); } function get_random_string(length) { let random_string = ''; for(let i = 0; i < length; i++) { random_string += char_set[max_random_number(char_set.length - 1)]; } return random_string; } console.log(get_random_string(20)); // Outputs: lgtuRJZolu7AXj4HMoiM console.log(get_random_string(40)); // outputs: scOoal3VXgeAjaHIieolhi2TyWFpAn5bBPPiX6UG
使用 toString()
生成随机字母数字字符串
我们可以用来生成随机字母数字字符串的另一种方法是对随机生成的数字使用 toString()
方法。 toString()
方法返回一个表示我们指定数值的字符串。此方法接受可选的 radix
参数,该参数指定要表示数字的基数。值为 2 将返回二进制字符串,值为 16 将返回十六进制字符串。该参数默认值为10。最大值可以为36,因为它涵盖了全部26个字母和10个数字。
以下是针对不同 radix
值对此方法进行几次调用的输出:
let number = 3498650143868; console.log(number.toString(2)); // Outputs: 110010111010010111110011001000110001111100 console.log(number.toString(10)); // Outputs: 3498650143868 console.log(number.toString(16)); // Outputs: 32e97cc8c7c console.log(number.toString(36)); // Outputs: 18n99yoak
您可能已经注意到,随着我们增加 radix
,输出字符串的长度不断减少。在下面的代码片段中,我们将使用上一节中的 max_random_number()
函数来获取随机数。然后,我们将使用 toString()
方法将此随机数转换为字母数字字符串。
function max_random_number(max) { return Math.floor(Math.random() * max); } for(let i = 0; i < 10; i++) { console.log(max_random_number(Number.MAX_SAFE_INTEGER).toString(36)); } /* Outputs: 1tr84s6c2sl 1yj4varyoj7 1zdg9nn0z6r lubrjj1zih 13tt2n5vw9t 1mv6sctjgf yx3fhnznhf 1wj4mdcrqb9 26sir75af2r qdv9xv800t */
如果您想要更大的字母数字字符串并希望它们具有固定长度(例如 40 个字符或 100 个字符)怎么办?在这种情况下,我们可以创建一个循环,不断附加生成的字符串,直到达到所需的长度。
function max_random_number(max) { return Math.floor(Math.random() * max); } function get_random_string(length) { let random_string = ''; while(random_string.length < length) { random_string += max_random_number(Number.MAX_SAFE_INTEGER).toString(36); } return random_string.substring(0, length); } console.log(get_random_string(40)); // Outputs: bn0nfhcsjm18ylzqrm6bo1iktka2aq7qbbl5ybki console.log(get_random_string(100)); // Outputs: rdosjhthsevmk91mj9zvqexz2z0v3pe2beasbzoworanzjg3bfpf975rzfy2fmo6pmj4p69u0x80ce92jh2vljx90g6r0lzd8vb0
最终想法
在本教程中,我们学习了如何在 JavaScript 中生成随机数和字母数字字符串。借助 Math.random()
方法,在 JavaScript 中生成随机整数很容易。我们所要做的就是缩放输出,使其符合我们所需的范围。如果您希望随机数具有加密安全性,您还可以考虑使用 getRandomValues()
方法。
一旦我们知道如何生成随机数,创建随机字母数字字符串就很容易了。我们需要做的就是弄清楚如何将数字转换为字符。我们在这里使用了两种方法。第一个涉及访问预定义字符串中随机数字索引处的字符。如果您想具体了解随机字母数字字符串中应包含的字符,则此技术非常有用。另一种方法涉及使用 toString()
方法将十进制数转换为不同的基数。这减少了对 max_random_number()
函数的调用。
当然还有更多技术可用于生成随机字母数字字符串。这完全取决于您的需求以及您想要的方法的创意程度。
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Explication détaillée de la méthode de conversion du type int en chaîne en PHP Dans le développement PHP, nous rencontrons souvent le besoin de convertir le type int en type chaîne. Cette conversion peut être réalisée de différentes manières. Cet article présentera en détail plusieurs méthodes courantes, avec des exemples de code spécifiques pour aider les lecteurs à mieux comprendre. 1. Utilisez la fonction intégrée strval() de PHP. PHP fournit une fonction intégrée strval() qui peut convertir des variables de différents types en types de chaîne. Lorsque nous devons convertir le type int en type chaîne,

1. Ouvrez d’abord pycharm et accédez à la page d’accueil de pycharm. 2. Créez ensuite un nouveau script python, cliquez avec le bouton droit sur nouveau - cliquez sur fichier python. 3. Entrez une chaîne, code : s="-". 4. Ensuite, vous devez répéter les symboles de la chaîne 20 fois, code : s1=s*20 5. Entrez le code de sortie d'impression, code : print(s1). 6. Enfin, exécutez le script et vous verrez notre valeur de retour en bas : - répété 20 fois.

Titre : Comment déterminer si une chaîne se termine par un caractère spécifique en Golang. Dans le langage Go, nous devons parfois déterminer si une chaîne se termine par un caractère spécifique. Ceci est très courant lors du traitement de chaînes. Cet article explique comment utiliser le langage Go pour implémenter cette fonction et fournit des exemples de code pour votre référence. Voyons d’abord comment déterminer si une chaîne se termine par un caractère spécifié dans Golang. Les caractères d'une chaîne dans Golang peuvent être obtenus par indexation, et la longueur de la chaîne peut être

Comment vérifier si une chaîne commence par un caractère spécifique en Golang ? Lors de la programmation en Golang, vous rencontrez souvent des situations où vous devez vérifier si une chaîne commence par un caractère spécifique. Pour répondre à cette exigence, nous pouvons utiliser les fonctions fournies par le package strings dans Golang pour y parvenir. Ensuite, nous présenterons en détail comment utiliser Golang pour vérifier si une chaîne commence par un caractère spécifique, avec des exemples de code spécifiques. En Golang, nous pouvons utiliser HasPrefix du package strings

Le langage Go est un langage de programmation puissant et flexible qui fournit de riches fonctions de traitement de chaînes, notamment l'interception de chaînes. Dans le langage Go, nous pouvons utiliser des tranches pour intercepter des chaînes. Ensuite, nous présenterons en détail comment intercepter des chaînes en langage Go, avec des exemples de code spécifiques. 1. Utilisez le découpage pour intercepter une chaîne. Dans le langage Go, vous pouvez utiliser des expressions de découpage pour intercepter une partie d'une chaîne. La syntaxe de l'expression slice est la suivante : slice:=str[start:end]where, s

Opération de chaîne PHP : une méthode pratique pour supprimer efficacement les espaces Dans le développement PHP, vous rencontrez souvent des situations dans lesquelles vous devez supprimer des espaces d'une chaîne. La suppression des espaces peut rendre la chaîne plus propre et faciliter le traitement et l'affichage ultérieurs des données. Cet article présentera plusieurs méthodes efficaces et pratiques pour supprimer des espaces et joindra des exemples de code spécifiques. Méthode 1 : utilisez la fonction intégrée PHP trim() La fonction intégrée PHP trim() peut supprimer les espaces aux deux extrémités de la chaîne (y compris les espaces, les tabulations, les nouvelles lignes, etc.), ce qui est très pratique et simple. utiliser.

Opération de chaîne PHP : supprimer les virgules supplémentaires et conserver uniquement les virgules. Conseils d'implémentation Dans le développement PHP, le traitement des chaînes est une exigence très courante. Parfois, nous devons traiter la chaîne pour supprimer les virgules supplémentaires et conserver les seules virgules. Dans cet article, je présenterai une technique d'implémentation et fournirai des exemples de code concrets. Tout d’abord, examinons une exigence courante : supposons que nous ayons une chaîne contenant plusieurs virgules et que nous devions supprimer les virgules supplémentaires et conserver uniquement la virgule unique. Par exemple, remplacez "apple,ba

En tant que langage de script largement utilisé pour développer des applications Web, PHP dispose de fonctions de traitement de chaînes très puissantes. Dans le développement quotidien, nous rencontrons souvent des opérations qui nécessitent la suppression d'une chaîne, notamment les deux derniers caractères de la chaîne. Cet article présentera deux techniques PHP pour supprimer les deux derniers caractères d'une chaîne et fournira des exemples de code spécifiques. Astuce 1 : Utilisez la fonction substr La fonction substr en PHP est utilisée pour renvoyer une partie d'une chaîne. Nous pouvons facilement supprimer des caractères en spécifiant la chaîne et la position de départ
