از طریق منوی جستجو مطلب مورد نظر خود در وبلاگ را به سرعت پیدا کنید
تبدیل رشته به بولی در جاوا اسکریپت فرض کنید ما مقادیر بولی را در پایگاه داده خود به صورت رشته و مبتنی بر ذخیره کرده ایم روی آن مقادیری که می خواهیم عملیات خاصی را انجام دهیم روی وب سایت/برنامه ما در آن صورت، ما باید قبل از استفاده از آنها در عملیات منطقی، آن رشته ها را به مقادیر بولی تبدیل کنیم. در این مقاله به بررسی …
سرفصلهای مطلب
معرفی
فرض کنید ما مقادیر بولی را در پایگاه داده خود ذخیره کرده ایم به عنوان رشته و بر اساس روی آن مقادیری که می خواهیم عملیات خاصی را انجام دهیم روی وب سایت/برنامه ما در آن صورت، ما باید قبل از استفاده از آنها در عملیات منطقی، آن رشته ها را به مقادیر بولی تبدیل کنیم.
در این مقاله، ما به چندین روش تبدیل مقادیر رشته به بولی (
true
یاfalse
) در جاوا اسکریپت.
با استفاده از اپراتور هویت (===)
این اپراتور هویت، همچنین به عنوان a اپراتور برابری دقیق، برمی گردد true
فقط اگر و فقط در صورتی که هر دو مقدار مقایسه شونده از مقدار باشند یک نوع و ارزش یکسانی دارند. به عبارت دیگر، تعیین می کند که آیا ارزش روی سمت چپ برابر با مقدار است روی سمت راست – و برمی گردد true
اگر هستند، و false
اگر نیستند.
توجه داشته باشید: اگر می خواهید در مورد تفاوت بین آنها بیشتر بدانید ==
(اپراتور برابری دقیق) و ===
(اپراتور برابری شل)، شما باید ما را بخوانید “جاوا اسکریپت: == در مقابل === اپراتور”!
در اصل، ما رشته خود را با رشته مقایسه می کنیم "true"
. بنابراین خروجی یک بولی خواهد بود true
فقط در صورتی که رشته ما واقعا باشد "true"
. هر رشته دیگری باعث می شود که کد آن را برگرداند false
مقدار بولی:
let myString = "true";
let boolOutput = (myString === "true"); //returns true
توجه داشته باشید: ما یک مقدار رشته را با نقل قول می نویسیم – "true"
و مقدار بولی بدون نقل قول – true
. ما از این نماد در کل این مقاله استفاده خواهیم کرد.
علاوه بر این، میتوانیم ابتدا یک رشته را به حروف کوچک تبدیل کنیم، فقط برای اینکه مطمئن شویم حروف کوچک باعث خروجیهای معیوب نمیشود:
let myString = "True";
let boolOutput = (myString.toLowerCase() === "true"); // returns true
همانطور که قبلاً بیان کردیم، کد قبلی باز خواهد گشت false
اگر مقدار رشته ما برابر نباشد "true"
:
let myString1 = "Test";
let boolOutput1 = (myString1 === "true"); //returns false
let myString1 = "Test";
let boolOutput1 = (myString1.toLowerCase() === "true"); //returns false
let myString = "True";
let boolOutput2 = (myString2 === "true"); //returns false
همچنین میتوانیم با معرفی آن چیزها را کمی ادویه کنیم اپراتور سه تایی در کنار عملگر برابری. تمام کاری که ما انجام خواهیم داد این است که بررسی کنیم آیا رشته ما برابر است یا خیر "true"
و سپس یک مقدار بولی از true
اگر مسابقه ای وجود دارد یا false
اگر اینطور نیست:
let myString = "true";
let boolOutput = myString.toLowerCase() == 'true' ? true : false; // returns true
استفاده از عبارات منظم (RegEx)
عبارات با قاعده (RegEx) الگوهایی برای تطبیق و آزمایش ترکیب کاراکترهای رشته ای هستند.
توجه داشته باشید: در این مقاله، فرض میکنیم که شما حداقل یک درک اولیه از عبارات منظم به طور کلی دارید. اما اگر برای درک بهتر نیاز به کمک دارید روی عبارات منظم در جاوا اسکریپت، باید مطالعه ما را در نظر بگیرید “راهنمای عبارات منظم و رشته های تطبیق در جاوا اسکریپت”
برای هدف این مقاله، ما از ابتدایی ترین شکل عبارات منظم در جاوا اسکریپت استفاده می کنیم – regex ساده ای را ایجاد می کنیم که مطابقت داشته باشد. "true"
و آن را با رشته ما مطابقت دهید test()
روش:
let stringValue = "true";
let boolValue = (/true/).test(stringValue); //returns true
متوجه خواهید شد که این در واقع به حروف کوچک و بزرگ حساس است، زیرا باز خواهد گشت false
اگر ناهماهنگی جزئی در مورد دارد:
let stringValue = "True";
let boolValue = (/true/).test(stringValue); //returns false
برای رفع این مشکل می توانیم اضافه کنیم /i
در پایان عبارت منظم برای اطمینان از برای بازی حساس به حروف کوچک و بزرگ:
let stringValue = "True";
let boolValue = (/true/i).test(stringValue); //returns true
از کلاس Boolean Wrapper استفاده می کنید؟
جاوا اسکریپت داخلی دارد Boolean
شی برای ذخیره مقادیر بولی. در واقع یک است لفاف شی برای مقادیر بولی – آن دور می پیچد اشیاء دیگر بنابراین آنها را به یک مقدار بولی معتبر تبدیل می کند. این کار با آزمایش انجام می شود راستی-کاذب ارزش یک شی به طور کلی – اشیاء خالی به ارزیابی می شوند false
، و اشیاء غیر خالی به ارزیابی می شوند true
.
هر رشته ای که رشته خالی نباشد به آن ارزیابی می شود true
با استفاده از Boolean
لفاف:
let myString1 = Boolean('true'); //returns true
let myString2 = Boolean(''); // //returns false
let myString3 = Boolean('false'); //returns true
let myString4 = Boolean('True'); //returns true
وجود دارد دو موضوع عمده اینجا:
- اول این که این باز خواهد گشت
true
برای یک رشته خالی با حداقل یک کاراکتر خالی (فضا، تب و غیره)، به همین دلیل است که هنگام استفاده از این روش باید محتاط باشیم:
const myString5 = Boolean(' '); //returns true
- در مرحله دوم، تبدیل یک رشته از
"false"
به مقدار بولی ازfalse
شکست خواهد خورد زیرا هر رشته غیر خالی به تبدیل می شودtrue
.
دو اپراتور NOT – !!
استفاده از عملگر دوگانه NOT برابر است با استفاده از عملگر منطقی NOT (!
) دو بار، به این معنی که نتیجه عملگر منفرد NOT را معکوس می کند:
let myString1 = !'test'; // returns false
let myString2 = !''; // returns true
هنگامی که از عملگر دوگانه NOT استفاده می کنیم، مقادیر برعکس می شوند، به این معنی که اکنون یک تبدیل بولی خالص را انجام می دهیم:
let myString1 = !!'test'; // returns true
let myString2 = !!''; // returns false
دو برابر نه (!!
) عملگر کاملاً مختصر است اما همان کار را انجام می دهد Boolean
لفاف با این حال، اگر با NOT منطقی آشنا نباشید، خواندن آن کمی سخت تر است (!
) اپراتور.
همچنین هنگام استفاده از این روش به عنوان یک رشته خالی با حداقل یک کاراکتر خالی باید احتیاط کنیم. true
و زمانی که سعی می کنیم رشته ای از "false"
به مقدار بولی از false
، این باز هم کار نخواهد کرد (همانطور که با Boolean
هدف – شی).
نتیجه
در این مقاله، ما به چهار روش برای تبدیل یک رشته به یک بولی در جاوا اسکریپت نگاهی انداخته ایم. ساده ترین راه برای انجام این کار استفاده از اپراتور برابری دقیق برای مقایسه مقدار رشته ما با "true"
– اگر رشته (به طور دقیق) برابر باشد "true"
، خروجی بولی خواهد بود true
. به طور متناوب، می توانید از اپراتور سه تایی در کنار عملگر برابری شل برای رسیدن به همان. همچنین، تطبیق عبارات منظم یک رویکرد محکم است.
دو روش آخر، Boolean
شی و دو عملگر NOT، نحو ساده تری دارند، اما اشکال آنها روش برخورد آنها با آن است false
مقدار – رشته “false” مقدار بولی را برمی گرداند true
، که آنها را فقط برای زیر مجموعه کوچکی از موارد تبدیل قابل اعمال می کند.
منتشر شده در 1403-01-09 13:21:14