Hướng dẫn how do you generate a random character in javascript? - làm thế nào để bạn tạo một ký tự ngẫu nhiên trong javascript?

Không có cách nào tốt nhất để làm điều này. Bạn có thể làm theo bất kỳ cách nào bạn thích, miễn là kết quả phù hợp với yêu cầu của bạn. Để minh họa, tôi đã tạo ra nhiều ví dụ khác nhau, tất cả sẽ cung cấp cùng một kết quả cuối cùng

Hầu hết các câu trả lời khác trên trang này bỏ qua yêu cầu ký tự trường hợp trên.

Đây là giải pháp nhanh nhất của tôi và dễ đọc nhất. Về cơ bản, nó làm giống như giải pháp được chấp nhận, ngoại trừ nó nhanh hơn một chút.fastest solution and most readable. It basically does the same as the accepted solution, except it is a bit faster.

function readableRandomStringMaker(length) {
  for (var s=''; s.length < length; s += 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789'.charAt(Math.random()*62|0));
  return s;
}
console.log(readableRandomStringMaker(length));
// e3cbN

Đây là một phiên bản đệ quy nhỏ gọn, không dễ đọc:compact, recursive version which is much less readable:

const compactRandomStringMaker = (length) => length-- && "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789".charAt(Math.random()*62|0) + (compactRandomStringMaker(length)||"");
console.log(compactRandomStringMaker(5));
// DVudj

Một lớp lót nhỏ gọn hơn:more compact one-liner:

Array(5).fill().map(()=>"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789".charAt(Math.random()*62)).join("")
// 12oEZ

Một biến thể của những điều trên:

"     ".replaceAll(" ",()=>"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789".charAt(Math.random()*62))

Một lớp lót nhỏ gọn nhất, nhưng không hiệu quả và không thể đọc được - nó thêm các ký tự ngẫu nhiên và loại bỏ các ký tự bất hợp pháp cho đến khi độ dài là L:most compact one-liner, but inefficient and unreadable - it adds random characters and removes illegal characters until length is l:

((l,f=(p='')=>p.lengthf())(5)

Một phiên bản an toàn về mặt mật mã, là lãng phí entropy cho sự nhỏ gọn và là một sự lãng phí bất kể vì chuỗi được tạo quá ngắn:

[...crypto.getRandomValues(new Uint8Array(999))].map((c)=>String.fromCharCode(c).replace(/[^a-z0-9]/i,'')).join("").substr(0,5)
// 8fzPq

Hoặc, không có tính năng chiều dài, nó thậm chí còn ngắn hơn:

((f=(p='')=>p.length<5?f(p+String.fromCharCode(Math.random()*123).replace(/[^a-z0-9]/i,'')):p)=>f())()
// EV6c9

Sau đó, một chút thách thức hơn - sử dụng hàm mũi tên đệ quy không tên:nameless recursive arrow function:

((l,s=((l)=>l--&&"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789".charAt(Math.random()*62|0)+(s(l)||""))) => s(l))(5);
// qzal4

Đây là một biến "ma thuật" cung cấp một ký tự ngẫu nhiên mỗi khi bạn truy cập nó:"magic" variable which provides a random character every time you access it:

const c = new class { [Symbol.toPrimitive]() { return "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789".charAt(Math.random()*62|0) } };
console.log(c+c+c+c+c);
// AgMnz

Một biến thể đơn giản hơn của những điều trên:

const c=()=>"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789".charAt(Math.random()*62|0);
c()+c()+c()+c()+c();
// 6Qadw

Đôi khi, các lập trình viên yêu cầu tạo một chuỗi được tạo bằng cách chọn các ký tự ngẫu nhiên. Trình tạo chuỗi ngẫu nhiên giúp tạo một chuỗi ngẫu nhiên bằng cách chọn một số ký tự một cách ngẫu nhiên. Chuỗi này có thể là một chuỗi ký tự đơn giản hoặc chuỗi alpha-numeric.

Trong chương này, bạn sẽ nhận được các phương thức khác nhau để tạo một trình tạo chuỗi ngẫu nhiên. Chúng tôi sẽ tạo một chương trình Trình tạo chuỗi ngẫu nhiên bằng ngôn ngữ lập trình JavaScript để tạo một chuỗi ngẫu nhiên. Mỗi lần nó sẽ tạo ra một chuỗi mới. Đối với điều này, chúng tôi sẽ sử dụng hàm math.random () của javascript.Math.random() function of JavaScript.

Sử dụng Trình tạo chuỗi ngẫu nhiên

Hầu hết thời gian, bạn đã thấy mã CAPTCHA trong các biểu mẫu web cần thiết để nhập trước khi gửi biểu mẫu để xác minh robot người dùng. Trình tạo chuỗi ngẫu nhiên sẽ giúp bạn tạo mã CAPTCHA này cho các lập trình viên. Ngày nay, nó được sử dụng rộng rãi trong các hình thức web cho mục đích bảo mật.

Hãy nhớ rằng mã CAPTCHA chứa một chuỗi các ký tự ngẫu nhiên. Nó có thể là sự kết hợp của các ký tự chữ cái hoặc các ký tự âm alpha.

Loại trình tạo chuỗi ngẫu nhiên mà chúng tôi đã thảo luận trong chương này

Bạn sẽ thấy hai loại Trình tạo chuỗi ngẫu nhiên:

  • Tạo chuỗi ngẫu nhiên đơn giản
  • Tạo chuỗi alpha-numeric ngẫu nhiên

Chúng tôi có hai loại trình tạo chuỗi này. Trong loại trình tạo chuỗi ngẫu nhiên đầu tiên này, chúng tôi sẽ tạo một chương trình JavaScript của Trình tạo chuỗi ngẫu nhiên sẽ chỉ tạo chuỗi chữ cái.

Ở đầu bên kia, trong loại trình tạo chuỗi thứ hai, chúng tôi sẽ tạo một chương trình JavaScript để tạo các chuỗi alpha-numeric ngẫu nhiên. Xem các ví dụ cho cả hai trình tạo chuỗi một cách chi tiết:

Tạo một chuỗi ngẫu nhiên

Ở đây, chúng tôi sẽ tạo một chương trình để tạo một chuỗi ngẫu nhiên:

Tiếp cận 1:

Cách tiếp cận này sẽ tạo ra một chuỗi ngẫu nhiên đơn giản bằng cách chọn một số ký tự một cách ngẫu nhiên với độ dài được chỉ định. Đây sẽ là một chuỗi đơn giản thay vì một chuỗi alpha-numeric. Làm theo các bước dưới đây:

  1. Tạo một chức năng do người dùng xác định và xác định một biến có tất cả các bảng chữ cái tiếng Anh bằng các chữ cái nhỏ và viết hoa.
  2. Xác định độ dài cho chuỗi ngẫu nhiên mới được tạo.
  3. Khai báo một biến trống mới (var ngẫu nhiênString = '';) để giữ chuỗi được tạo.
  4. Bây giờ, đi qua chuỗi bằng cách sử dụng cho vòng lặp. Nó sẽ tạo ra một ký tự mới trong mỗi lần lặp.
  5. Bên trong vòng lặp này, hãy sử dụng phương thức math.random () của javascript để tạo một ký tự ngẫu nhiên từ biến chuỗi được chỉ định ở trên (A-Z, A-Z) bằng cách tính toán một chỉ mục ngẫu nhiên.
  6. Phương pháp sàn () để làm tròn giá trị. Điều này sẽ được sử dụng như Math.Floor (Math.Random () * ký tự.LEPT).

Chuyển đổi các bước trên trong triển khai mã thực tế để xem kết quả. Nhìn vào mã JavaScript bên dưới:

Sao chép mã

Kiểm tra nó ngay bây giờ

Chạy mã trong trình duyệt của bạn và nhận kết quả giống như được đưa ra trong ảnh chụp màn hình dưới đây:

Đầu ra 1

Hướng dẫn how do you generate a random character in javascript? - làm thế nào để bạn tạo một ký tự ngẫu nhiên trong javascript?

Đầu ra 2

Nhấp vào nút này tạo nút chuỗi ngẫu nhiên và điều này sẽ tạo ra một chuỗi ngẫu nhiên cho bạn.Generate Random String button, and this will generate a random string for you.

Hướng dẫn how do you generate a random character in javascript? - làm thế nào để bạn tạo một ký tự ngẫu nhiên trong javascript?

Đầu ra 3

Bất cứ khi nào bạn nhấp vào nút này, nó sẽ tạo ra một mẫu các ký tự ngẫu nhiên mới (chuỗi ngẫu nhiên) có độ dài 7. Xem ảnh chụp màn hình bên dưới:

Hướng dẫn how do you generate a random character in javascript? - làm thế nào để bạn tạo một ký tự ngẫu nhiên trong javascript?

Tạo chuỗi alpha-numeric ngẫu nhiên

Có hai cách tiếp cận được thảo luận dưới đây để tạo ra một chuỗi alpha-numeric ngẫu nhiên:

Tiếp cận 1:

Cách tiếp cận này sẽ tạo ra một chuỗi ngẫu nhiên đơn giản bằng cách chọn một số ký tự một cách ngẫu nhiên với độ dài được chỉ định. Đây sẽ là một chuỗi đơn giản thay vì một chuỗi alpha-numeric. Làm theo các bước dưới đây:

  1. Tạo một chức năng do người dùng xác định và xác định một biến có tất cả các bảng chữ cái tiếng Anh bằng các chữ cái nhỏ và viết hoa.
  2. Xác định độ dài cho chuỗi ngẫu nhiên mới được tạo.
  3. Xác định độ dài cho chuỗi ngẫu nhiên mới được tạo.
  4. Khai báo một biến trống mới (var ngẫu nhiênString = '';) để giữ chuỗi được tạo.
  5. Bây giờ, đi qua chuỗi bằng cách sử dụng cho vòng lặp. Nó sẽ tạo ra một ký tự mới trong mỗi lần lặp.
  6. Bên trong vòng lặp này, hãy sử dụng phương thức math.random () của javascript để tạo một ký tự ngẫu nhiên từ biến chuỗi được chỉ định ở trên (A-Z, A-Z) bằng cách tính toán một chỉ mục ngẫu nhiên.
  7. Phương pháp sàn () để làm tròn giá trị. Điều này sẽ được sử dụng như Math.Floor (Math.Random () * ký tự.LEPT).

Chuyển đổi các bước trên trong triển khai mã thực tế để xem kết quả. Nhìn vào mã JavaScript bên dưới:

Sao chép mã

Kiểm tra nó ngay bây giờ

Chạy mã trong trình duyệt của bạn và nhận kết quả giống như được đưa ra trong ảnh chụp màn hình dưới đây:

Đầu ra 1

Hướng dẫn how do you generate a random character in javascript? - làm thế nào để bạn tạo một ký tự ngẫu nhiên trong javascript?

Đầu ra 2

Nhấp vào nút này tạo nút chuỗi ngẫu nhiên và điều này sẽ tạo ra một chuỗi ngẫu nhiên cho bạn.Generate Random String button, and this will generate a random string for you.

Hướng dẫn how do you generate a random character in javascript? - làm thế nào để bạn tạo một ký tự ngẫu nhiên trong javascript?

Đầu ra 3

Bất cứ khi nào bạn nhấp vào nút này, nó sẽ tạo ra một mẫu các ký tự ngẫu nhiên mới (chuỗi ngẫu nhiên) có độ dài 7. Xem ảnh chụp màn hình bên dưới:

Hướng dẫn how do you generate a random character in javascript? - làm thế nào để bạn tạo một ký tự ngẫu nhiên trong javascript?

Tiếp cận 2:

Bây giờ, chúng ta có một cách tiếp cận khác sẽ tạo ra một chuỗi alpha-numeric với độ dài được chỉ định. Đó là một cách tiếp cận rất ngắn để tạo ra một chuỗi ngẫu nhiên. Điều này không yêu cầu quá nhiều mã dài. Trong phương pháp này, chúng tôi sẽ không chỉ định độ dài cho chuỗi mới được tạo. Nó sẽ mất độ dài 10 hoặc 11 của chuỗi mới.

Thực hiện theo các bước cơ bản để tạo chuỗi Alpha-Numeric ngẫu nhiên:

  1. Tạo một chức năng do người dùng xác định có sẽ bao gồm tất cả các bước dưới đây bên trong nó.
  2. Đầu tiên, sử dụng phương thức ngẫu nhiên () để tạo một số ngẫu nhiên.random() method to generate a random number.
  3. Bây giờ, chúng tôi sẽ sử dụng phương pháp tích hợp của JavaScript ToString (36) để chuyển đổi cơ sở thành 36 (26 chars + 0 thành 9). Trong 36 ký tự này, nó có các ký tự Alpha-Numeric bao gồm 26 bảng chữ cái và 0 đến 9 số.toString(36) to convert the base to 36 (26 chars + 0 to 9). In these 36 characters it has alpha-numeric characters includes 26 alphabets and 0 to 9 numbers.
  4. Cuối cùng, sử dụng lát cắt () để có được phần của chuỗi được bắt đầu từ vị trí 2.slice() to get the part of string that is started from position 2.

Chuyển đổi các bước trên trong triển khai mã thực tế để xem kết quả. Nhìn vào mã JavaScript bên dưới:

Sao chép mã

Kiểm tra nó ngay bây giờ

Đầu ra 1

Lưu tệp và chạy mã trên trong trình duyệt của bạn. Ban đầu, bạn sẽ nhận được kết quả giống như được đưa ra trong ảnh chụp màn hình dưới đây:

Hướng dẫn how do you generate a random character in javascript? - làm thế nào để bạn tạo một ký tự ngẫu nhiên trong javascript?

Đầu ra 2

Tại đây, nhấp vào nút Tạo chuỗi để tạo chuỗi Alpha-Numeric ngẫu nhiên và xem đầu ra:Generate String button to generate the random alpha-numeric string and see the output:

Hướng dẫn how do you generate a random character in javascript? - làm thế nào để bạn tạo một ký tự ngẫu nhiên trong javascript?

Đầu ra 3

Nó sẽ tạo ra một mẫu mới mỗi lần khi bạn nhấp vào nút tạo chuỗi này. Nhấp và kiểm tra các mẫu chuỗi Alpha-Numeric khác nhau:Generate String button. Click and check different alpha-numeric string patterns:

Hướng dẫn how do you generate a random character in javascript? - làm thế nào để bạn tạo một ký tự ngẫu nhiên trong javascript?

Note:

Trong cách tiếp cận 1, bạn có thể xác định độ dài (số lượng ký tự) cho chuỗi ngẫu nhiên mới. Nhưng mà,

Trong cách tiếp cận 2, bạn không thể xác định độ dài của chuỗi mới sẽ được tạo. Sử dụng bất kỳ phương pháp nào trong trang web của bạn theo yêu cầu của bạn.


Làm thế nào để bạn tạo một chuỗi ngẫu nhiên?

Một chuỗi ngẫu nhiên được tạo bằng cách tạo ra một luồng các số giá trị ASCII ngẫu nhiên cho các ký tự 0-9, A-Z và A-Z. Tất cả các giá trị số nguyên được tạo sau đó được chuyển đổi thành các ký tự tương ứng của chúng sau đó được gắn vào một chuỗi.first generating a stream of random numbers of ASCII values for 0-9, a-z and A-Z characters. All the generated integer values are then converted into their corresponding characters which are then appended to a StringBuffer.

Có một chức năng ngẫu nhiên trong JavaScript?

Trong javascript, ngẫu nhiên () là một hàm được sử dụng để trả về số giả ngẫu nhiên hoặc số ngẫu nhiên trong một phạm vi.Vì hàm ngẫu nhiên () là hàm tĩnh của đối tượng toán học, nó phải được gọi qua đối tượng giữ chỗ được gọi là toán học.random() is a function that is used to return a pseudo-random number or random number within a range. Because the random() function is a static function of the Math object, it must be invoked through the placeholder object called Math.

Đối tượng nào có thể được sử dụng để tạo số ngẫu nhiên trong JavaScript?

Math.random () hàm math.random () trả về số điểm nổi, giả ngẫu nhiên lớn hơn hoặc bằng 0 và nhỏ hơn 1, với phân phối xấp xỉ trên phạm vi đó-mà sau đó bạn có thể mở rộng theo mong muốn của mìnhphạm vi. The Math.random() function returns a floating-point, pseudo-random number that's greater than or equal to 0 and less than 1, with approximately uniform distribution over that range — which you can then scale to your desired range.

Làm thế nào để bạn xáo trộn một chuỗi trong javascript?

Đầu tiên, chuyển đổi chuỗi thành một mảng bằng phương thức Split ().Sau đó, gọi phương thức Sắp xếp () của mảng.Trong định nghĩa hàm của nó, trả về một giá trị ngẫu nhiên (-ve, 0, +ve) mỗi khi nó được gọi.Sau đó, onvert mảng bị xáo trộn trở lại một chuỗi bằng phương thức nối ().