javascript-random-string

سلام. در این مطلب قصد دارم تا نحوه تولید رشته تصادفی در زبان جاوا اسکریپت رو آموزش بدم.

با توجه به اینکه در جاوا اسکریپت تابع خوبی برای تولید اعداد تصادفی وجود ندارد، برای همین نیاز داریم تا خودمان تابعی را تعریف کنیم :
function rnd(min, max) {
var rand = min + Math.floor(Math.random() * (max - min));
return rand;
}

حالا که تابع خوبی برای تولید اعداد تصادفی داریم، باید به طراحی الگوریتم برنامه بپردازیم:

var chars = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', '1', '2', '3', '4', '5', '6', '7', '8', '9', '0', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', '@', '_', '-', '#', '$', '%', '^', '&', '*'];
var length = 7;
var array_length = chars.length;
var str = "";

for (var i = 0; i < length; i++) {
var rndNumber = rnd(0, array_length - 1);
str += chars[rndNumber];
}
// spaceit.blog.ir ::: javascript random string
document.write(str);

در ابتدا، آرایه ای با نام chars تعریف می کنیم. این آرایه شامل حروف زبان انگلیسی (uppercase و lowercase)، اعداد (0 تا 9) و همچنین کارکترهای ویژه (& ^ % $ # و ...) می باشد. سپس متغیری را به نام length تعریف کرده با مقدار 7، این متغیر طول رشته تصادفی را تعیین می کنید. در مرحله بعد متغیری به نام array_length  تعریف می کنیم و مقدار طول آرایه را داخل آن می ریزیم. متغیری با نام str نیز با مقدار "" (رشته خالی) تعریف می کنیم.

حالا در یک حلقه for، شمارنده ای با نام i و با مقدار اولیه 0 (با توجه به اینکه اندیس گذاری آرایه ها از 0 شروع می شود) تعریف می کنیم. و تا زمانی که i کوچکتر از متغیر length (طول رشته) است، حلقه for، کدهای داخل خود را اجرا کند.

داخل حلقه for، ابتدا متغیری با نام rndNumber تعریف کرده که عددی تصادفی بین 0 و یک واحد کمتر از طول آرایه تولید می کند. در نهایت مقدار متغیر str را با اندیس rndNumber ارایه chars الحاق می دهیم.

در نهایت هم متغیر str را چاپ می کنیم.


این کد مثال ساده ای از تولید رشته تصادفی می باشد و قطعا می توان به آن امکانات زیادی را اضافه کرد. برای مثال بجای اینکه طول رشته (متغیر length) را برابر با عدد 7 قرار دهیم، در فایل html فرمی را قرار داده و در جاوا اسکریپت مقدار (value) آن را گرفته و در متغیر length بریزیم تا کاربر بتواند طول رشته تصادفی خود را بدون نیاز به تغییر کدهای جاوا اسکریپت تغییر دهد.

اینکار با استفاده از کتابخانه جی کوئری (JQuery) به راحتی قابل انجام است.