JavaScript >> Javascript 文檔 >  >> Tags >> string

如何在 JavaScript 中生成隨機字符串

有很多方法可以在 JavaScript 中生成隨機字符串。最快的方法是使用 Math.random() 方法。

Math.random() 方法返回一個介於 0(包括)和 1(不包括)之間的隨機數。您可以將此隨機數轉換為字符串,然後刪除尾隨零:

const rand = Math.random().toString().substr(2, 8);  // 60502138

上面的代碼會生成一個 8 個字符的隨機字符串,其中只包含數字。

要生成字母數字字符串,您可以在 2 之間傳遞一個整數值 和 36toString() 名為 radix 的方法 .它定義了用於表示數值的基數。

對於二進製字符串(0-1),可以傳遞 2 作為 radixtoString()

const binary = Math.random().toString(2).substr(2, 8);  // 01100110

要生成完全隨機的字符串,您應該傳遞 16 或大於 radix toString() 的值 :

const rand = Math.random().toString(16).substr(2, 8); // 6de5ccda

讓我們編寫一個函數,使用上面的代碼生成一個介於 0 到 14 個字符之間的隨機字符串:

const random = (length = 8) => {
    return Math.random().toString(16).substr(2, length);
};

console.log(random()); // bb325d9f
console.log(random(6)); // e51d83
console.log(random(10)); // e84c416cc7
console.log(random(14)); // ee16dfc68e361

生成大的隨機字符串

要生成大的隨機字符串(長度超過 14 個字符),您必須編寫自己的生成器。以下示例演示如何通過從 A-Z 中隨機選取字符來生成任意大小的字符串 , a-z , 和 0-9

const random = (length = 8) => {
    // Declare all characters
    let chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';

    // Pick characers randomly
    let str = '';
    for (let i = 0; i < length; i++) {
        str += chars.charAt(Math.floor(Math.random() * chars.length));
    }

    return str;

};

console.log(random()); // JgKGQEUx
console.log(random(12)); // ttwbeshkYzaX
console.log(random(20)); // zZN7uH9pPjhJf30QNus5

在上面的例子中,Math.random()Math.floor() 方法用於生成指定字符(A-Z a-z 0-9)中字符的隨機索引。

for 循環用於循環遍歷傳入 random() 的數字 功能。在循環的每次迭代中,從字符列表中隨機選擇一個字符。


Tutorial JavaScript 教程
  1. mobx-keystone,mobx-state-tree 的替代品,沒有它的一些痛苦

  2. Redux - 核心概念

  3. 如何開始使用帶有 Typescript 的 React

  4. 我的第一個失敗的 SwiftUI 項目

  5. Node.js 幕後花絮 #4 - 讓我們談談 V8

  6. 帶有 VueJs 的 Postman 集合查看器

  7. 反應反應❄| React JS 初學者指南🔥

  1. 使用 Vue CLI 創建一個新項目

  2. 我希望擁有的測試介紹

  3. 微博:給未來自己的加密信息

  4. 使用 React、ChakraUi 和 framerMotion 創建一個筆記本應用程序

  5. React hooks 是否已經取代了類生命週期方法🤔?

  6. ES6 for 循環:最佳實踐

  7. PHP Javascript表單formData 70:使用ajax完成(XMLHttpRequest)

  1. JavaScript 驚人的運算符

  2. 揭秘 7 個鮮為人知的 React Router 術語和特性(附示例)🔮

  3. 如何使用 React Hooks 構建具有加載更多功能的 React 應用程序

  4. 如何輕鬆開始使用 ThreeJS - 第 1 部分