رشته ها در JavaScript
شیء string، برای ذخیره و دستکاری متن استفاده می شود.
رشته ها (String) در JavaScript
در متغیرها یا اشیاء رشته ای، می توان یک سری از کاراکترها مانند "beyamooz" را ذخیره نمود.
زمانی که یک مقدار رشته ای را به یک متغیر انتساب می دهید، باید آنرا در کوتیشن یا دابل کوتیشن (' یا ") قرار دهید.
مثال (رشته ها در JavaScript)
var carname='Volvo XC60';
می توانید از علامت کوتیشن (') داخل رشته استفاده کنید، البته تا زمانی که با علامتی که رشته را احاطه کرده، تطابق نداشته باشد:
مثال (رشته ها در JavaScript)
var answer="He is called 'Johnny'";
var answer='He is called "Johnny"';
راه حل مشکل بالا (تطابق کوتیشن های داخل رشته با احاطه کننده رشته)، استفاده از علامت (\) قبل از کوتیشن های داخل رشته است: (برای توضیح بیشتر، به انتهای این مقاله مراجعه نمایید)
مثال (رشته ها در JavaScript)
var answer="He is called \"Johnny\"";
می توانید به هر کدام از کاراکترهای یک رشته، از طریق مکانش (index)، دسترسی داشته باشید:
مثال (رشته ها در JavaScript)
توجه: ایندکس رشته از صفر شروع می شود، یعنی اولین کاراکتر [0] است، دومین کاراکتر [1] و ...
طول رشته (String length)
برای فهمیدن طول یک رشته، می توان از خصوصیت length، استفاده نمود:
مثال (رشته ها در JavaScript)
document.write(txt.length);
var txt="ABCDEFGHIJKLMNOPQRSTUVWXYZ";
document.write(txt.length);
پیدا کردن یک رشته داخل رشته ای دیگر
در مثال زیر، متد ()indexOf، اولین مکان رخداد رشته "welcome" را در شیء str، برمی گرداند:
مثال (رشته ها در JavaScript)
var n=str.indexOf("welcome");
توجه: اگر رشته مشخص شده پیدا نشد، عدد 1- برمی گردد.
متد ()lastIndexOf، بجای اینکه جستجو را از ابتدای رشته شروع کند از آخر رشته شروع می کند.
تطبیق یک رشته در محتوای رشته ای دیگر
در مثال زیر، اگر پارامتر ورودی متد ()match، در شیء str یافت شد، مقدار یافت شده را برمی گرداند وگرنه مقدار null را برمی گرداند:
مثال (رشته ها در JavaScript)
document.write(str.match("world") + "<br>");
document.write(str.match("World") + "<br>");
document.write(str.match("world!"));
جایگزینی در محتوای یک رشته
در مثال زیر، متد ()replace، مقدار پارامتر "Microsoft" را در شیء str جستجو می کند و تمام آنها را با مقدار "Beyamooz.com" جایگزین می کند:
مثال (رشته ها در JavaScript)
var n=str.replace("Microsoft","Beyamooz.com");
حروف بزرگ (Upper Case) و حروف کوچک (Lower Case)
در مثال زیر، متد ()toUpperCase کاراکترهای شیء txt را به حروف بزرگ و متد ()toLowerCase به حروف کوچک تبدیل می کند:
مثال (رشته ها در JavaScript)
var txt1=txt.toUpperCase(); // txt1 is txt converted to upper
var txt2=txt.toLowerCase(); // txt2 is txt converted to lower
تبدیل رشته به یک آرایه
در مثال زیر، با استفاده از متد ()split شیء txt را براساس کارکتر "," جدا کرده و به ترتیب در یک آرایه قرار می دهد:
مثال (رشته ها در JavaScript)
txt.split(","); // Split on commas
استفاده از کارکترهای خاص در یک رشته
علامت (\) برای وارد کردن کاراکترهای خاص مانند: (")، (') و یا رفتن به خط جدید در یک رشته، استفاده می شود.
مثال:
document.write(txt);
در JavaScript، یک رشته با علامت " یا ' احاطه می شود. بنابراین رشته بالا شکسته خواهد شد: We are the so-called
راه حل این مشکل، استفاده از (\) قبل از دابل کوتیشن های داخل رشته است:
document.write(txt);
خروجی به صورت روبرو خواهد بود: We are the so-called "Vikings" from the north
در جدول زیر، لیستی از دیگر کاراکترهایی که می تواند با (\) داخل متن استفاده شود، آورده شده است:
کد | خروجی |
---|---|
\' | single quote |
\" | double quote |
\\ | backslash |
\n | new line |
\r | carriage return (رفتن سر خط) |
\t | tab |
\b | backspace |
\f | form feed |
متدها (Method) و خصوصیات (Property) مربوط به رشته ها
متد | توضیحات |
---|---|
constructor | از این خصوصیت در JavaScript، برای برگرداندن تابع سازنده ی رشته استفاده می شود. |
length | از این خصوصیت در JavaScript، برای برگرداندن طول (length) یک رشته استفاده می شود. |
prototype | از این خصوصیت در JavaScript، برای اضافه کردن خصوصیت یا متد به یک شیء استفاده می شود. |
کلیه متدهای مربوط به رشته ها در JavaScript
متد | توضیحات |
---|---|
charAt() | از این متد در Javascript برای برگرداندن یک کاراکتر که در یک اندیس مشخص قرار دارد، استفاده می شود. |
charCodeAt() |
از این متد در Javascript، برای برگرداندن یونیکد یک کاراکتر، که در یک اندیس مشخص قرار دارد، استفاده می شود. |
concat() |
از این متد در Javascript، برای الحاق دو یا چند رشته و برگرداندن رشته تولید شده، استفاده می شود. |
fromCharCode() |
از این متد در Javascript، برای تبدیل اعداد یونیکد به کاراکتر، استفاده می شود. |
indexOf() |
از این متد در Javascript، برای برگرداندن یک اندیس استفاده می شود و این اندیس، اندیسِ اولین تطابقِ یک مقدار در یک رشته است. |
lastIndexOf() |
از این متد در Javascript، برای برگرداندن یک اندیس استفاده می شود و این اندیس، اندیسِ آخرین تطابق یک مقدار در یک رشته است . |
localeCompare() |
از این متد در Javascript، برای مقایسه ی دو رشته استفاده می شود.مقایسه ی دو رشته در مورد محل قرارگیری آنها در مرتب شدن است. |
match() |
از این متد در Javascript، برای برگرداندن تطابق یک رشته با یک عبارت منظم استفاده می شود . |
replace() |
یک رشته را برای یک مقدار مشخص یا یک عبارت منظم جستجو کرده و مقادیر مشخص شده را جایگزین آن می کند و یک رشته جدید را برمی گرداند از این متد در Javascript، برای جستجو کردن یک مقدار مشخص در یک رشته و جایگزین کردن مقادیر مشخص شده در آن رشته و برگرداندن رشته جدید، استفاده می شود. |
search() |
از این متد در Javascript، برای جستجو کردن یک مقدار مشخص در یک رشته و برگرداندن اندیس تطابق، استفاده می شود. |
slice() |
از این متد در Javascript، برای جدا کردن یک قسمت از یک رشته و برگرداندن رشته ی جدید، استفاده می شود. |
split() |
از این متد در Javascript، برای تجزیه کردن یک رشته و قرار دادن آنها در عناصر یک آرایه، استفاده می شود. |
substr() |
از این متد در Javascript، برای جدا کردن تعداد مشخصی کاراکتر از یک رشته استفاده می شود. |
substring() |
از این متد در Javascript، برای جدا کردن کاراکترهای بین دو اندیس در یک رشته، استفاده می شود. |
toLocaleLowerCase() |
از این متد در Javascript، برای تبدیل حروف یک رشته به حروف کوچک، طبق مکان هاست، استفاده می شود. |
toLocaleUpperCase() |
از این متد در Javascript، برای تبدیل حروف یک رشته به حروف بزرگ،طبق مکان هاست، استفاده می شود. |
toLowerCase() |
از این متد در Javascript، برای تبدیل حروف یک رشته، به حروف کوچک، استفاده می شود. |
toString() |
از این متد در Javascript، برای برگرداندن مقدار یک شیء، استفاده می شود. |
toUpperCase() |
از این متد در Javascript، برای تبدیل حروف یک رشته، به حروف بزرگ، استفاده می شود. |
trim() |
از این متد در Javascript، برای حذف کردن فاصله ها از اول و آخر یک رشته، استفاده می شود. |
valueOf() |
از این متد در Javascript، برای برگرداندن مقدار اولیه ی یک شیء، استفاده می شود. |
- نوشته شده توسط امیر پهلوان صادق
- بازدید: 31112
دیدگاهها
سلام خسته نباشید یه سوالی داشتم در رابطه با این متد ()replace
این متد فقط یک کارکتر رو با کارکتر جایگزین جابجا میکنه حالا چطور میشه من بطور مثال تگ اغاز و پایان P رو بدم و بیاد هرجا تگ اغاز شد بدون در نظر گردن محتویاتش کلش رو جایگزین کنه که مجبور نباشم هزاران احتمال رو دونه دونه بهش بدم. ممنون میشم راهنماییم کنید که ایا شدنیه با این متد یانه مرسی و خدا نگه دار
سلام، برای جایگزین کردن محتوای تمام تگ های P باید از "عبارات منظم" بعنوان پارامتر اول متد replace استفاده کنید.
برای کسب اطلاعات بیشتر در مورد عبارات منظم به لینک زیر مراجعه فرمایید:
beyamooz.com/javascript/128-object/404-%D8%B9%D8%A8%D8%A7%D8%B1%D8%A7%D8%AA-%D9%85%D9%86%D8%B8%D9%85-%D8%AF%D8%B1-javascript
سلام مجدد
عزیز من سر زدم مطالعه هم کردم لینکهای راهنما رو هم دیدم اما متاسفانه بخاطر اشنایی نداشتن متوجه نشدم دقیق
میشه بصورت عینی و عملی یک نمونه برام اصلاح کنید.
سلام، در مثال زیر، رشته Microsoft به Beyamooz.com تبدیل می شود:
<!DOCTYPE html>
<html>
<body id="demo">
<p>Click the button to replace "Microsoft" with "Beyamooz.com"</p>
<p>Please visit Microsoft! </p>
<p>Please visit MicroSoft! </p>
<p>Please visit microsoft! </p>
<button onclick="myFunc tion()">Try it</button>
<script>
function myFunction()
{
var str=document.ge tElementById("d emo").innerHTML ;
var n=str.replace(/(Microsoft)/gi,"Beyamooz.com");
document.getElementById("demo").innerHTML=n;
}
</script>
</body>
</html>
سلام مجدد . ممنون از وقتی که گذاشتید گرچه این کد اصلا کار خاصی انجام نمیده همون جایگزینی تک کارکتر رو انجام میده . تنها یک کارکتر رو در متن یا سند تغییر میده . بنده دنبال کدی بودم که تو همین کد بالاییتون بطور مثال هر سه خط که با پی شرو شدن و تموم شدن بدون توجه به محتویاتشون با چیز دیگه ای جایگزین کنه مثلا بگم وقتی پاراگرافی با پی شروع میشه و با پی بسته میشه بدون در نظر گرفتن محتویاتش اون رو مثلا با یه کارکتر یا پاراگراف دیگه عوض کنه نه اینکه فقط یک کارکتر رو در کل سند تغییر بده .
در هر صورت مرسی که وقت گذاشتید ممنون و خدا نگه دار
سلام، برای جایگزین کردن محتوای تمام تگهای P با یک مقدار دلخواه فقط کافی است که از عبارت منظم زیر استفاده کنید:
var n=str.replace(/<p>.*<\/p>/gi,"Beyamooz.com");
با کلیک روی لینک زیر، مثال خودتان امتحان کنید، مربوطه را مشاهده نمایید:
beyamooz.com/try_it_yourself/tryit.php?filename=tryjs_replace_All_P_with_beyamooz
قطعا با عبارت منظم آشنا هستید، در زیر مفهوم برخی از علائم عبارات منظم آورده شده است:
^ : نشانه شروع می باشد. به طور مثال دستور bcd^ به معنی هر عبارتی است که با bcd شروع شود.
$ : نشانه پایان می باشد. به طور مثال دستور $bcd به معنی هر عبارتی است که در انتها به bcd ختم شود.
+ : نشانه تکرار است و اگر پشت عبارتی قرار بگیرید باید حداقل یکبار تکرار شود.
* : همانند + می باشد با این تفاوت که آن عبارت می تواند تکراری نداشته باشد.
? : اگر پشت عبارتی قرار بگیرد یعنی اینکه آن عبارت باید صفر یا یک بار تکرار شود.
() : برای قسمت بندی عبارات به زیر عبارات و اولویت بندی نیز می باشد.
[] : لیستی از کاراکترها که می خواهیم تطبیق دهیم در این دو کروشه قرار می گیرد.
[ ^] : لیستی از کاراکترهائی که نمی خواهیم تطبیق داده شوند از این عبارت استفاده می کنیم.
d\ : نشانه ارقام می باشد یعنی وقتی این عبارت بیاید منظور یکی از ارقام است.
D\ : نشانه هر کاراکتری غیر از رقم می باشد.
w\ : نشانه حرف یا عدد می باشد و کاراکترهای خاص نیست و معادل [a-zA-Z_0-9] است.
W\ : نشانه کاراکترهای خاص می باشد و عدد یا حروف یا space نیست.
s\ : نشانه کاراکتر space می باشد.
S\ : نشان هر کاراکتری غیر از space می باشد.
{} : مشخص کننده تعداد تکرارا می باشد و اگر داخل آن یک عدد نوشته شود یعنی اینکه عبارت قبل از آن دقیقا باید به تعداد آن عدد تکرارا شود ولی اگر دو عدد نوشته شود عبارت قبل از آن باید تکراری بین آن دو عدد باشد.
| : بمعنی یا است. بعنوان مثال a|b یعنی یا a یا b
- : بمعنی تا است. بعنوان مثال a-z یعنی از a تا z
. : می تواند هر کاراکتری باشد.
سلام مجدد
دقیقا همین رو نیاز داشتم که گذاشتید . واقعا یدنیا ممنون ازتون که با صبوری وقت گذاشتید و مشکلم رو حل کردید .
نمیدونم چطور ازتون تشکر کنم .
اکثر سایتها فقط کپی میکنن و خودشون اطلاعات خاصی ندارند معمولا اما شما با پاسخ کامل و وقتی که گذاشتید هم دانش هم لطفتون رو نشون دادید . یدنیا تشکر و سپاس . و آرزوی موفقیت همیشگی .
لطفا متد ها و خصوصیات را لینک کنید
ضمن تشکر از شما، انجام شد.
با سلام
برای اطلاع بیشتر در این زمینه به آموزش " کلیه متدهای شیء String " از طریق لینک زیر مراجعه کنید :
www.beyamooz.com/jsref/342-javascript/2612-%DA%A9%D9%84%DB%8C%D9%87-%D9%85%D8%AA%D8%AF%D9%87%D8%A7%DB%8C-%D8%B4%DB%8C%D8%A1-string-%D8%AF%D8%B1-javascript
سلام و خسته نباشید
با نحوه استفاده از این متدها چطوری اشنا بشیم ؟
ایا در سرفصل های بعد برای انها مثال میاورید ؟
ممنون
kolan hamaro dar yek sar fasle dg tozih dadan. inam linke ye bakhshe, mitunid az unja be baghie bakhsh ha ham dastresi dashte bashid
beyamooz.com/jsref/342-javascript/2612-%DA%A9%D9%84%DB%8C%D9%87-%D9%85%D8%AA%D8%AF%D9%87%D8%A7%DB%8C-%D8%B4%DB%8C%D8%A1-string-%D8%AF%D8%B1-javascript
سُلام طبق توضیحات شما هر چیزی که درون "" یا '' باشد رشته است
چرا در بعضی از کد ها باید متن ها را به رشته تبدیل کرد حتی اعداد هم به رشته تبدیل می کنند
سلام
ببینید برای اینکه بخواهیم به رایانه بفهمانیم که یک تعداد کاراکتر مشخص، رشته هستند اونا رو بین دبل کوتیشن و یا سینگل کوتیشن قرار می دهیم . مثلا اگر یک عددی را به صورت رشته معرفی کنیم دیگر یک رشته محسوب می شود و عدد نیست، یعنی قابلیت و خواص اعداد را از دست می دهد. به عبارت دیگر جمع و تفریق و ... را نمی توان روی آن انجام داد. دلیل اینکه متن رو به رشته تبدیل می کنند اینه که با متغیر اشتباه نشه. مثلا عبارت text یک متغیر محسوب می شود ولی عبارت "text" یک رشته محسوب می شود.
چرا وارد مثال ها میشیم تفاوت دارن لطفا این صفحه مثال ها رو چک کنید
ممنون از تذکر شما. به زودی بررسی انجام می گیرد.
سلام
به خاطر ایجاد این سایت آموزشی ازتون ممنونم
ولی چرا انقد متدهای string ناقصه؟