Skip to content

Commit 44bb10f

Browse files
fixed some chars
1 parent b687852 commit 44bb10f

1 file changed

Lines changed: 24 additions & 24 deletions

File tree

  • 9-regular-expressions/01-regexp-introduction

9-regular-expressions/01-regexp-introduction/article.md

Lines changed: 24 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,14 @@
11
# الگو ها و پرچم ها (Patterns and flags)
22

3-
عبارات باقاعده(Regular expressions) الگوهایی هستند که روشی قدرتمند برای جستجو و جایگزینی در متن ارائه می دهند.
3+
عبارات باقاعده (Regular expressions) الگوهایی هستند که روشی قدرتمند برای جستجو و جایگزینی در متن ارائه می دهند.
44

5-
در جاوا اسکریپت، آنها از طریق شیء [RegExp](mdn:js/RegExp) و همچنین به خوبی با متد های رشته ها ادغام می شوند.
5+
در جاوا اسکریپت، آنها از طریق شیء [RegExp](mdn:js/RegExp) استفاده می شوند و همچنین به خوبی با متد های رشته ها ادغام می شوند.
66

77
## عبارات باقاعده (Regular Expressions)
88

9-
عبارت باقاعده (همچنین "regexp"، یا فقط "reg") از یک *الگو(pattern)* و *پرچم(flags)* های اختیاری تشکیل شده است.
9+
عبارت باقاعده (همچنین "regexp"، یا فقط "reg") از یک *الگو(pattern)* و *پرچم(flags)* های اختیاری تشکیل می شوند.
1010

11-
دو سینتکس وجود دارد که می توان از آنها برای ایجاد یک شیء عبارت باقاعده استفاده کرد.
11+
دو روش وجود دارد که می توان از آنها برای ایجاد یک شیء عبارت باقاعده استفاده کرد.
1212

1313
سینتکس "طولانی":
1414

@@ -20,14 +20,14 @@ regexp = new RegExp("pattern(الگو)", "flags(پرچم)");
2020

2121
```js
2222
regexp = /pattern/; // بدون پرچم
23-
regexp = /pattern/gmi; // با پرچم g, m, i (به زودی پوشش داده میشود)
23+
regexp = /pattern/gmi; // با پرچم g, m, i (به زودی پوشش داده می شود)
2424
```
2525

26-
اسلش های `pattern:/.../` به جاوا اسکریپت می گوید که ما در حال ایجاد یک عبارت باقاعده هستیم. آنها همان نقش کوتیشن('') را برای رشته ها بازی می کنند.
26+
اسلش های `pattern:/.../` به جاوا اسکریپت می گوید که ما در حال ایجاد یک عبارت باقاعده هستیم. آنها همان نقش کوتیشن(') را برای رشته ها بازی می کنند.
2727

28-
در هر دو مورد، `regexp` به یک نمونه از کلاس داخلی `RegExp` تبدیل می‌شود.
28+
در هر دو مورد، `regexp` به یک نمونه از کلاس داخلی `RegExp` تبدیل می‌ شود.
2929

30-
تفاوت اصلی بین این دو سینتکس در این است که الگو با استفاده از اسلش‌های `/.../`، اجازه درج عبارات را نمی دهد (مانند حروف الفبای قالب(template literals) رشته با `${...}`). آنها کاملا ساکن هستند.
30+
تفاوت اصلی بین این دو سینتکس این است که الگو با استفاده از اسلش‌های `/.../`، اجازه درج عبارات را نمی دهد (مانند حروف الفبای قالب(template literals) رشته با `${...}`). که آنها کاملا ساکن هستند.
3131

3232
اسلش ها زمانی استفاده می شوند که عبارت باقاعده را در زمان نوشتن کد بدانیم -- و این رایج ترین حالت است. در حالی که `new RegExp` بیشتر زمانی استفاده می شود که ما نیاز به ایجاد یک regexp "در حال پرواز" از یک رشته تولید شده به صورت پویا داشته باشیم. برای مثال:
3333

@@ -39,9 +39,9 @@ let regexp = new RegExp(`<${tag}>`); // مانند /<h2>/ اگر در اعلان
3939

4040
## پرچم ها (Flags)
4141

42-
عبارات باقاعده ممکن است دارای پرچم هایی باشند که بر جستجو تأثیر می گذارد.
42+
عبارات باقاعده ممکن است دارای پرچم هایی باشند که بر نحوه جستجو تأثیر بگذارد.
4343

44-
در جاوا اسکریپت، فقط 6 مورد از آنها وجود دارد:
44+
در جاوا اسکریپت، تنها 6 مورد از آنها وجود دارد:
4545

4646
`pattern:i`
4747
: با این پرچم، جستجو به حروف کوچک و بزرگ حساس نیست: تفاوتی بین `A` و `a` نمی گذارد (به مثال زیر مراجعه کنید).
@@ -53,7 +53,7 @@ let regexp = new RegExp(`<${tag}>`); // مانند /<h2>/ اگر در اعلان
5353
: حالت چند خطی (در فصل <info:regexp-multiline-mode> پوشش داده شده است).
5454

5555
`pattern:s`
56-
: حالت `dotall` را فعال می‌کند، که به یک نقطه `.:pattern` اجازه می‌دهد تا با کاراکتر خط جدید `n\` مطابقت داشته باشد (در فصل <info:regexp-character-classes> پوشش داده شده است).
56+
: حالت `dotall` را فعال می‌ کند، که به یک نقطه `.:pattern` اجازه می‌ دهد تا با کاراکتر خط جدید `n\` مطابقت داشته باشد (در فصل <info:regexp-character-classes> پوشش داده شده است).
5757

5858
`pattern:u`
5959
: پشتیبانی کامل از یونیکد را فعال می کند. پرچم پردازش صحیح جفت های جایگزین را امکان پذیر می کند. اطلاعات بیشتر در مورد آن در فصل <info:regexp-unicode>.
@@ -73,7 +73,7 @@ let regexp = new RegExp(`<${tag}>`); // مانند /<h2>/ اگر در اعلان
7373

7474
همانطور که قبلا ذکر شد، عبارات باقاعده با متدهای رشته ای ادغام می شوند.
7575

76-
متد `str.match(regexp)` همه مطابقت‌ های `regexp` را در رشته `str` پیدا می‌کند.
76+
متد `str.match(regexp)` همه مطابقت‌ های `regexp` را در رشته `str` پیدا می‌ کند.
7777

7878
و دارای 3 حالت کار است:
7979

@@ -83,7 +83,7 @@ let regexp = new RegExp(`<${tag}>`); // مانند /<h2>/ اگر در اعلان
8383

8484
alert( str.match(/we/gi) ); // We,we (آرایه ای از 2 رشته که مطابقت دارند)
8585
```
86-
لطفاً توجه کنید که `match:We` و `match:we` نتیجه یکسانی میدهند، زیرا پرچم `pattern:i` باعث می‌شود که عبارت باقاعده به حروف بزرگ و کوچک حساس نباشد.
86+
لطفاً توجه کنید که `match:We` و `match:we` نتیجه یکسانی می دهند، زیرا پرچم `pattern:i` باعث می‌ شود که عبارت باقاعده به حروف بزرگ و کوچک حساس نباشد.
8787

8888
2. اگر چنین پرچمی وجود نداشته باشد، فقط اولین تطابق را در یک آرایه، با تطابق کامل در ایندکس `0` و برخی جزئیات اضافی در ویژگی ها بر می گرداند:
8989
```js run
@@ -101,9 +101,9 @@ let regexp = new RegExp(`<${tag}>`); // مانند /<h2>/ اگر در اعلان
101101

102102
اگر بخشی از عبارت باقاعده در داخل پرانتز قرار بگیرد، ممکن است آرایه، ایندکس های دیگری در کنار ایندکس `0` نیز داشته باشد. ما آن را در فصل <info:regexp-groups> پوشش خواهیم داد.
103103

104-
3. و در نهایت، اگر هیچ تطابقی وجود نداشته باشد، `null` بر می گرداند. (فرقی نمی‌کند که پرچم `pattern:g` وجود داشته باشد یا خیر).
104+
3. و در نهایت، اگر هیچ تطابقی وجود نداشته باشد، `null` بر می گرداند. (فرقی نمی‌ کند که پرچم `pattern:g` وجود داشته باشد یا خیر).
105105

106-
این یک فرق ریز و بسیار مهم است. اگر هیچ تطابقی وجود نداشته باشد، یک آرایه خالی دریافت نمی‌کنیم، بلکه `null` دریافت می‌ کنیم. فراموش کردن آن ممکن است منجر به خطاهایی شود، به عنوان مثال:
106+
این یک فرق ریز و بسیار مهم است. اگر هیچ تطابقی وجود نداشته باشد، یک آرایه خالی دریافت نمی‌ کنیم، بلکه `null` دریافت می‌ کنیم. فراموش کردن آن ممکن است منجر به خطاهایی شود، به عنوان مثال:
107107

108108
```js run
109109
let matches = "JavaScript".match(/HTML/); // = null
@@ -113,7 +113,7 @@ let regexp = new RegExp(`<${tag}>`); // مانند /<h2>/ اگر در اعلان
113113
}
114114
```
115115

116-
اگر می‌خواهیم نتیجه همواره یک آرایه باشد، می‌ توانیم آن را به این صورت بنویسیم:
116+
اگر می‌ خواهیم نتیجه همواره به صورت یک آرایه باشد، می‌ توانیم آن را به این صورت بنویسیم:
117117

118118
```js run
119119
let matches = "JavaScript".match(/HTML/)*!* || []*/!*;
@@ -125,7 +125,7 @@ let regexp = new RegExp(`<${tag}>`); // مانند /<h2>/ اگر در اعلان
125125

126126
## جایگزین کردن: str.replace
127127

128-
روش `str.replace(regexp، replacement)` تطابق ‌هایی را که با استفاده از `regexp` در رشته `str` یافت می‌شود را با `replacement` جایگزین می‌کند (همه منطبق هستند اگر پرچم `pattern:g` وجود داشته باشد، در غیر این صورت، فقط اولین مورد است).
128+
روش `str.replace(regexp، replacement)` تطابق ‌هایی را که با استفاده از `regexp` در رشته `str` یافت می‌ شود را با `replacement` جایگزین می‌ کند (همه منطبق هستند اگر پرچم `pattern:g` وجود داشته باشد، در غیر این صورت، فقط اولین مورد است).
129129

130130
برای مثال:
131131

@@ -137,7 +137,7 @@ alert( "We will, we will".replace(/we/i, "I") ); // I will, we will
137137
alert( "We will, we will".replace(/we/ig, "I") ); // I will, I will
138138
```
139139

140-
آرگومان دوم رشته، `replacement(جایگزینی)` است. می‌توانیم از ترکیب کاراکتر های ویژه در آن برای درج قطعاتی از تطابق استفاده کنیم:
140+
آرگومان دوم رشته، `replacement(جایگزینی)` است. می‌ توانیم از ترکیب کاراکتر های ویژه در آن برای درج قطعاتی از تطابق استفاده کنیم:
141141

142142
| نماد | عمل در رشته جایگزین |
143143
|--------|--------|
@@ -156,7 +156,7 @@ alert( "I love HTML".replace(/HTML/, "$& and JavaScript") ); // I love HTML and
156156

157157
## تست کردن: regexp.test
158158

159-
متد `regexp.test(str)` حداقل یک تطابق را جستجو می‌کند، در صورت یافتن `true`، در غیر این صورت `false` بر میگرداند.
159+
متد `regexp.test(str)` حداقل یک تطابق را جستجو می‌ کند، در صورت یافتن `true`، در غیر این صورت `false` بر می گرداند.
160160

161161
```js run
162162
let str = "I love JavaScript";
@@ -165,14 +165,14 @@ let regexp = /LOVE/i;
165165
alert( regexp.test(str) ); // true
166166
```
167167

168-
بعداً در این فصل، عبارات باقاعده بیشتری را یاد می گیریم. مثال‌های بیشتری را مرور می‌ کنیم، و همچنین با روش‌ های دیگر آشنا می‌ شویم.
168+
بعدا در این فصل، عبارات باقاعده بیشتری را یاد می گیریم. مثال‌ های بیشتری را مرور می‌ کنیم و همچنین با روش‌ های دیگری آشنا می‌ شویم.
169169

170170
اطلاعات کامل در مورد متد ها در مقاله <info:regexp-methods> آورده شده است.
171171

172172
## خلاصه
173173

174-
- یک عبارت باقاعده از یک الگو و پرچم‌های اختیاری تشکیل شده است: `pattern:g`، `pattern:i`، `pattern:m`، `pattern:u`، `pattern:s`، `pattern:y`.
174+
- یک عبارت باقاعده از یک الگو و پرچم‌ های اختیاری تشکیل شده است: `pattern:g`، `pattern:i`، `pattern:m`، `pattern:u`، `pattern:s`، `pattern:y`.
175175
- بدون پرچم و نمادهای خاص (که بعداً مطالعه خواهیم کرد)، جستجو توسط regexp مانند جستجوی زیر رشته(substring) است.
176-
- متد `str.match(regexp)` به دنبال تطابق است: اگر پرچم `pattern:g` وجود داشته باشد، همه آنها را بر میگرداند، در غیر این صورت، فقط اولین مورد را بر میگرداند.
177-
- متد `str.replace(regexp، replacement)»` تطابق های یافت شده با استفاده از `regexp` را با `replacement` جایگزین می‌کند: به همه آنها این فرایند را اعمال میکند اگر پرچم `pattern:g` وجود داشته باشد، در غیر این صورت فقط به اولین مورد اعمال میکند.
178-
- متد `regexp.test(str)` اگر حداقل یک مورد مطابقت داشته باشد، `true` بر می‌گرداند، در غیر این صورت، `false` بر می‌گرداند.
176+
- متد `str.match(regexp)` به دنبال تطابق است: اگر پرچم `pattern:g` وجود داشته باشد، همه آنها را بر می گرداند، در غیر این صورت، فقط اولین مورد را بر می گرداند.
177+
- متد `str.replace(regexp، replacement)»` تطابق های یافت شده با استفاده از `regexp` را با `replacement` جایگزین می‌ کند: به همه آنها این فرایند را اعمال می کند اگر پرچم `pattern:g` وجود داشته باشد، در غیر این صورت فقط به اولین مورد اعمال می کند.
178+
- متد `regexp.test(str)` اگر حداقل یک مورد مطابقت داشته باشد، `true` بر می‌ گرداند، در غیر این صورت، `false` بر می‌ گرداند.

0 commit comments

Comments
 (0)