بررسی وجود یک رشته در یک رشته متنی دیگر در جاوا اسکریپت چگونه است؟




انتظار دارم یک متدی مثل `String.contains()` وجود داشته باشه ولی ظاهرا چنین چیزی نیست.


روش منطقی برای بررسی این موضوع چیه؟








پرسش امتیازی🔝


تعداد بازدید 5975705




امتیاز 7428👍


رای 7456👍







📅 پرسش در 
2009-11-24T13:04:29+00:00
نوامبر 24, 2009


📅 آخرین ویرایش 
آوریل 3, 2019









برای این پرسش **1** پاسخ وجود دارد


1






 برای دنبال کردن نوشته های کاپ کد به [کانال تلگرامی آن (cupcode\_ir@)](tg://resolve?domain=cupcode_ir) بپیوندید!
 

 شما اینجا هستید :
[کاپ کد](https://cupcode.ir/) » [پرسش ها](https://cupcode.ir/questions/) » [javascript](https://cupcode.ir/question-tag/javascript/) » **بررسی وجود یک رشته در یک رشته متنی دیگر در جاوا اسکریپت چگونه است؟**
ECMAScript 6 متد [`String.prototype.includes`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/includes) رو معرفی کرد:


```
const string = "foo";
const substring = "oo";

console.log(string.includes(substring));
```
اما `includes` [در اینترنت اکسپلورر پشتیبانی](https://caniuse.com/#feat=es6-string-includes) نمیشه، در ECMAScript 5 یا محیط های قدیمی تر، از [`String.prototype.indexOf`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/indexOf) استفاده کن که اگر نتونه یک زیر رشته رو در رشته ای دیگه پیدا کنه 1- بر میگردونه


```
var string = "foo";
var substring = "oo";

console.log(string.indexOf(substring) !== -1);
```
شما میتونی با event های مربوط به scroll اینکارو انجام بدین اگر اسکرول به بالا شد نمایش بده اگر به پایین شد محو بشه
object.addeventlistener("scroll", myscript);
البته برای اینکار کتابخونه های جاوا اسکریپتی و جی کوئری مختلفی هست که با سرچ میتونید بهشون برسید سلام
با جاوا اسکریپت یه تابع باید بنویسید که هر وقت مقدار selectoption عوض شد این تابع باید اجرا بشه.
توی این تابع مقدار selectoption رو چک کنید اگه برابر با با مقدار که میخواین بود input رو disabled کنید.
 &lt;script&gt;
 (function () {
 var selectoption = document.getelementbyid('selectoption');
 selectoption.addeventlistener('change', function () {... میتونی آموزش sass راکت را ببین تو یکی از قسمت هاش توضیح داده ولی به نظر بنده برو همونsass را یاد بگیر چون خیلی راحت تر میتونی کد هاتو بنویسی و scss یه نوعی که تو کد نویسی سختی بیشتری داره خب شما آرایه zarib1 را داخل حلقه for اول تعریف کرده اید. بنابراین این آرایه فقط در داخل همان بلوک قابل دسترس است. پس شکل درست برنامه این است که حلقه دوم را در داخل حلقه اول بنویسید یعنی کد شما به شکل زیر خواهد بود:
<java>
for(int j=0;j<tokens.length;j++)
 { string[] zarib1=tokens[j].split('\\*');
 
 for(int i=0;i<zarib1.length;i++)
 system.out.println(zarib1[i]);
}
<java>
همانطور هم که در پست قبلی گفتم علامت ستاره را باید بعد از دوتا بک اسلش بیاورید. سوال خیلی خوبیه.

در ابتدا باید بگم که توضیحات قبلی من ایراد داشت چون بر اساس استاندارد c++ نتیجه تمام مثال‌های بالا نامعین است.

دو مفهوم وجود داره: تقدم عملگرها operator precedence و ترتیب بررسی (یا ارزیابی) order of evaluation

این دو با هم دیگه فرق دارن.

عملگری که تقدم بالاتری داره الزاما اول ا… موضوعي كه گفتيد زماني ميتواند بعنوان يك مقاله مطرح شود كه حاوي ايده جديدي باشد  

  

 در خصوص انتخاب موضوع، پيشنهاد ميكنم بر اساس روال تحقيق پيشنهاد شده در لينك زير پيش برويد تا به موضوع مناسب برسيد  

  

<http://wiki.occc.ir/index.php?title=research> خیلی مطلبه جالبی هست اگر به عنوان یک مقاله در اینجا آورده بشه. 
البته در این رابطه ویدئو های فارسی و مطالب زیادی توی دیگر سایتا هم هست که با یک جستجو میتونین پیدا کنین.
مثلن این لینک یک ویدئوی آموزشی خوب هست:
http://dl.daneshjooyar.com/users/user1030/a.sh/regex/regex.mp4 سلام
بنده با هر سه مورد مدتی سر و کله زدم، به نظرم این مسئله که آیا شما با زبان های سمت سرور آشنایی دارید یا خیر در انتخاب موثر هست.
همین طور اینکه آیا در آینده می خواهید سمت react-native و یا ionoc و... بروید یا خیر.
به طور کلی بعد از یادگیری جاوا اسکریپت ( و es6 ) برای هرکدوم از حالت ها موارد زیر رو پیشنهاد می کنم:
1- در صورت آشنایی با php:
vue و react رو پیشنهاد می دم.
2- در صورت استفاده از nod... باید بررسی شود احتمالا هدف این پرسش این بوده‌است که ببینند چه فردی پیرامون مقطع‌های مخروطی مطالعهٔ بیشتر داشته‌است. به هر حال شکل همگن کلی ضابطهٔ یک مقطع مخروطی یک چندجمله‌ای درجهٔ دوی دو متغیره است که در کتاب‌های هندسه‌تحلیلی دبیرستانی به شکل زیر نمایش داده می‌شود.



$$Ax^2+Bxy+Cy^2+Dx+Ey+F$$

شاید این را دیده باشید که اگر تعریف کنید $\Delta=B^2-4AC$ آنگاه داریم


1. اگر $\Delta< 0$ آنگاه دایره، بیضی یا یک نقطه دارید.
2. اگر $\Delta=0$ آنگاه سهمی، یک یا دو خط موازی دارید.
3. اگر $\Delta>0$ آنگاه هذلولوی یا دو خط متقاطع دارید.


اما چگونه تشخیص داد که در هر یک از این سه حالت مقطع خم‌دار را دارید یا مقطع‌های بدون خم (نقطه و خط و دوخط). یک فرمول کمکی دیگر، فرمول $\Delta'=(AC-\frac{B^2}{4})F+\frac{BED-CD^2-AE^2}{4}$ است. اگر این مقدار صفر شود آنگاه با حالت‌های بدون خم روبرو هستید. هر دو ضابطهٔ شما (پس از به یک طرف آوردن دو سمت تساوی‌ها) دارای $\Delta>0$ و $\Delta'=0$ هستند پس هر دو به شکل دو خط متقاطع هستند. دو خط با معادلهٔ $ax+by+c=0$ و $a'x+b'y+c'=0$ در نظر بگیرید. معادلهٔ دوخط با هم برابر است با $(ax+by+c)(a'x+b'y+c')=0$ پس با ضرب کردن پرانتزها و سپس برابر قرار دادن با ضابطه‌های دو مقطع‌تان دو دستگاه دارای ۶ معادله ۶ مجهول خواهید بود. با حل آنها در واقع تجزیهٔ دو چندجمله‌ای درجهٔ دوتان را خواهید داشت که به شکل زیر خواهندشد.



$$\begin{array}{l}
-x^2-xy+2y^2+4x+2y-4=-(x+2y-2)(x-y-2)\\
2x^2-3xy+y^2-5x+2y-3=(2x-y+1)(x-y-3)
\end{array}$$

اما توجه کنید که خط $x-y-2$ موازی خط $x-y-3$ است. پس این دو خط یکدیگر را قطع نمی‌کنند. پس به جای چهار نقطهٔ برخورد سه نقطهٔ برخورد دارید.


1. برخورد $x+2y-2$ با $2x-y+1$.
2. برخورد $x+2y-2$ با $x-y-3$.
3. برخورد $x-y-2$ با $2x-y+1$.


این سه نقطه برابر هستند با $(0,1)$ و $(\frac{8}{3},\frac{1}{3})$ و $(-3,-5)$.