گروه مقاله : جاوا اسكريپت Java Script
تاريخ انتشار : 1396/08/20 - 10:59
كد :7936

متدهای تابع string در جاوا اسکریپت

در این مقاله به بررسی متد های مرتبط با رشته ها می پردازیم این متدها وظایفی مانند تعیین طول رشته و یافتن بخش خاصی از رشته را بعهده دارند.

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

 

متد های رشته ای در جاوا اسکریپت

طول رشته

برا بازگردانی طول رشته از صفت length استفاده می کنیم:

 

var txt = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
var sln = txt.length;

==========================================

<p id="demo"></p>

 

<script>

var txt = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";

document.getElementById("demo").innerHTML = txt.length;

</script>

==============================================

26

 

یافتن یک رشته در یک رشته

برای یافته یک بخش از یک رشته میتوان از متد indexOf() برای بازگردانی ایندکس مکان عبارت مشخص شده استفاده کرد.

مثال:

var str = "Please locate where 'locate' occurs!";
var pos = str.indexOf("locate");

==================================

<p id="demo"></p>

 

<script>

var str = "Please locate where 'locate' occurs!";

var pos = str.indexOf("locate");

document.getElementById("demo").innerHTML = pos;

</script>

========================================

7

 

اگر عبارت ذکر شده در این متد چند بار رشته متنی تکرار شده باشد تعداد کاراکتر تا اولین حرف اولین عبارت بازگردانی میشود.

برای بازگردانی اولین حرف از آخر کاراکتر عبارت مد نظرمان را باز گردانی کنیم از متد lastIndexOf() استفاده می کنیم.

var str = "Please locate where 'locate' occurs!";
var pos = str.lastIndexOf("locate");

====================================

<p id="demo"></p>

 

<script>

var str = "Please locate where 'locate' occurs!";

var pos = str.lastIndexOf("locate");

document.getElementById("demo").innerHTML = pos;

</script>

================================================

21

اگر عبارت موجود در این دو متد یافت نشود عدد 1- بازگردانی میشود. اولین کلمه در یک رشته ایندکس 0 دارد.

var str = "Please locate where 'locate' occurs!";
var pos = str.indexOf("locate",15);

==================================

<p id="demo"></p>

 

<script>

var str = "Please locate where 'locate' occurs!";

var pos = str.indexOf("locate",15);

document.getElementById("demo").innerHTML = pos;

</script>

========================================

21

جستجو برای یک رشته درون رشته دیگر

با متد search() میتوان موقعیت یک عبارت را در جمله بازگرداند:

مثال:

var str = "Please locate where 'locate' occurs!";
var pos = str.search("locate");

===================================

<p id="demo"></p>

 

<script>

var str = "Please locate where 'locate' occurs!";

var pos = str.search("locate");

document.getElementById("demo").innerHTML = pos;

</script>

==========================================

7

متد indexOf() و متد search() باهم برابر هستند.

 

 متد های تکه کردن رشته

برای بازگرداندن یک قسمت از متغییر رشته ای از متدهای زیر استفاده میشود:

  • slice(start, end)
  • substring(start, end)
  • substr(start, length)

متد slice()  :

با متد slice() یک تکه از رشته جدا شده و بعنوان یک رشته جدید استفاده بازگردانده میشود.

متد slice() دو متد میپذیرد متد اول نقطه شروع رشته و متد دوم نقطه پایان رشته خروجی است.

در مثال زیر ما از نقطه 7 تا 13 رشته خود یک رشته جدید خروجی گرفته ایم.

var str = "Apple, Banana, Kiwi";
var res = str.slice(7, 13);

==========================

Banana

اگر پارامتر منفی درج شود رشته از آخر محاسبه میشود.

این مثال از رشته اصلی رشته یک قطعه از 12- تا 6- را جدا می کنیم:

var str = "Apple, Banana, Kiwi";
var res = str.slice(-12, -6);

========================

Banana

اگر متد دوم را ننویسیم متد slice از نقطه شروع تا نقطه پایان رشته را باز می گرداند:

var res = str.slice(7);

==================

<p id="demo"></p>

 

<script>

var str = "Apple, Banana, Kiwi";

var res = str.slice(7);

document.getElementById("demo").innerHTML = res;

</script>

=========================================

Banana, Kiwi

این دستور را میتوان به این صورت هم نوشت:

var res = str.slice(-12);

 

متد substring()

این متد کاملا شبیه متد slice است با این تفاوت که نمی تواند مقدار منفی بگیرد.

 

var str = "Apple, Banana, Kiwi";
var res = str.substring(7, 13);

=========================

Banana

متد substr()

این متد بسیار شبیه slice است تفاوت آن با متد slice در این است که پارامتر دوم در متد substr طول رشته ای است که باید از رشته اصلی جدا شود:

var str = "Apple, Banana, Kiwi";
var res = str.substr(7, 6);

=============================

Banana

در متد substr پارامتر اول میتواند منفی هم باشد ولی پارامتر دوم فقط مقدار مثبت به خود میگیرد. درصورت عدم وجود پارامتر دوم رشته از نقطه پارامتر اول تا انتها برش می خورد.

جایگزینی محتوای رشته

برای جایگزین کردن محتوای رشته از متد replace() استفاده میشود این متد مقدار اولیه و مقدار جایگذین را در پارامتر خود تعیین می کند:

str = "Please visit Microsoft!";
var n = str.replace("Microsoft", "W3Schools");

====================================

<p id="demo">Please visit Microsoft!</p>

 

<script>

function myFunction() {

    var str = document.getElementById("demo").innerHTML;

    var txt = str.replace("Microsoft","W3Schools");

    document.getElementById("demo").innerHTML = txt;

}

</script>

متد replace تغییری در رشته ایجاد نمی کند بلکه یک رشته جدید ایجاد می کند. بصورت پیشفرش متد replace تنها اولین تشابه را بازگردانی میکند.

str = "Please visit Microsoft and Microsoft!";
var n = str.replace("Microsoft", "W3Schools");

برای تغییر تمام موارد مشابه با عبارت جدید از /g استفاده کنید:

 

str = "Please visit Microsoft and Microsoft!";
var n = str.replace(/Microsoft/g, "W3Schools");

بطور پیشفرض متد replace به بزرگی و کوچکی حروف حساس است. اگر MICROSOFT را با حروف بزرگ بنویسیم این متد کار نخواهد کرد.

 

str = "Please visit Microsoft!";
var n = str.replace("MICROSOFT", "W3Schools");

برای تغییر همه عبارات بزرگ و کوچک از /i استفاده کنید:

str = "Please visit Microsoft!";
var n = str.replace(/MICROSOFT/i, "W3Schools");

 

تبدیل رشته به حروف بزرگ و حروف کوچک

برای تبدیل رشته به حروف بزرگ از متد toUpperCase() استفاده کنید:

var text1 = "Hello World!"; // String
var text2 = text1.toUpperCase(); // text2 is text1 converted to upper

برای تبدیل رشته به حروف کوچک از toLowerCase() استفاده کنید:

var text1 = "Hello World!"; // String
var text2 = text1.toLowerCase(); // text2 is text1 converted to lower

متد concat()

این متد دو یا چند رشته را به هم وصل می کند:

 

var text1 = "Hello";
var text2 = "World";
var text3 = text1.concat(" ", text2);

بجای متد concat میتوان از علامت + استفاده کرد:

var text = "Hello" + " " + "World!";
var text = "Hello".concat(" ", "World!");

استخراج کد کاراکتر رشته ها:

برای استخراج کد کاراکتر رشته ها از دو متد زیر استفاده میشود:

  • charAt(position)
  • charCodeAt(position)

متد charAt()

متد charAt() کاراکتر را در یک ایندکس مشخص شده بازگردانی می کند:

var str = "HELLO WORLD";
str.charAt(0); // returns H

متد charCodeAt()

متد charCodeAt کد Unicode را برای کاراکتر مشخص شده باز میگرداند:

var str = "HELLO WORLD";

str.charCodeAt(0); // returns 72

دسترسی به رشته ها از طریق آرایه ها بدرستی عمل نمی کند.

در مثال زیر ما به یک رشته مانند یک آرایه دسترسی پیدا کرده ایم:

 

var str = "HELLO WORLD";

str[0]; // returns H

این کد اروری باز نمی گرداند ولی کار هم نمی کند.

تبدیل رشته به یک آرایه

برای تبدیل رشته به یک آرایه از متد split() استفاده میشود.

var txt = "a,b,c,d,e"; // String
txt.split(","); // Split on commas
txt.split(" "); // Split on spaces
txt.split("|"); // Split on pipe

==========================

<p id="demo"></p>

<script>

function myFunction() {

    var str = "a,b,c,d,e,f";

    var arr = str.split(",");

    document.getElementById("demo").innerHTML = arr[0];

}

</script>

=============================================

a

 

اگر از جداکننده استفاده نشود کل رشته بعنوان یک ایندکس از آرایه در نظر گرفته میشد.

اگر ازجدا کننده "" استفاده شود رشته بصورت تک کاراتری بازگردانده میشود:

var txt = "Hello"; // String
txt.split(""); // Split in characters

 

براي بهره مندي از مشاوره تخصصي در زمینه طراحی سایت در کرج با شرکت سارگون تماس بگيريد

نظرات كاربران :