⊗jsSpREHHy 110 of 294 menu

Тире в набори от символи в регулярни изрази на JavaScript

Тирето - също е специален символ вътре в [ ] (а отвън - не е). Ако имате нужда от самото тире като символ - го поставете там, където няма да бъде възприето като разделител на група.

Защо това е важно: можете да създадете група от символи, без самите да го забележите. Например, ето така - '[:-@]' - вие мислите, че избирате две точки, тире и знак @, а всъщност се получава група от символи между : и @. В тази група влизат следните символи: ? < = > : ;

Откъде са дошли? От таблицата ASCII - две точките има по-малък номер от знака @ - и се получава група. Тоест всички групи се получават според таблицата ASCII (ако желаете можете да използвате това).

Как да се борим с това: поставете символа тире там, където със сигурност няма да бъде възприет като символ на група, например, в началото или в края (тоест след [ или преди ]).

Можете също да екранирате тирето - тогава то ще означава само себе си независимо от позицията. Например, вместо [:-@] да напишете [:\-@] - и вече няма да има група, а ще има три символа - две точки, тире и знак @.

Пример

В следващия пример шаблонът за търсене е такъв: цифра 1, следвана от буква от 'a' до 'z', следвана от цифра 2:

let str = '1a2 1-2 1c2 1z2'; let res = str.replace(/1[a-z]2/g, '!');

В резултат във променливата ще се запише следното:

'! 1-2 ! !'

Пример

Нека сега екранираме тирето. В резултат шаблонът за търсене е такъв: цифра 1, следвана от буква 'a', или тире, или буква 'z', следвана от цифра 2:

let str = '1a2 1-2 1c2 1z2'; let res = str.replace(/1[a\-z]2/g, '!');

В резултат във променливата ще се запише следното:

'! ! 1c2 !'

Пример

Можете просто да преместите тирето, без да го екранирате:

let str = '1a2 1-2 1c2 1z2'; let res = str.replace(/1[az-]2/g, '!');

В резултат във променливата ще се запише следното:

'! ! 1c2 !'

Пример

В следващия пример шаблонът за търсене е такъв: първият символ - това са малки букви или тире '-', следвани от две букви 'x':

let str = 'axx Axx -xx @xx'; let res = str.replace(/[a-z-]xx/g, '!');

В резултат във променливата ще се запише следното:

'! Axx ! @xx'

Пример

В следващия пример шаблонът за търсене е такъв: първият символ - това са малки, главни букви или тире '-', следвани от две букви 'x':

let str = 'axx Axx -xx @xx'; let res = str.replace(/[a-zA-Z-]xx/g, '!');

В резултат във променливата ще се запише следното:

'! ! ! @xx'

Пример

Можете да поставите тирето между две групи - там то със сигурност още няма да създаде друга група:

let str = 'axx 9xx -xx @xx'; let res = str.replace(/[a-z-0-9]xx/g, '!');

В резултат във променливата ще се запише следното:

'! ! ! @xx'

Практически задачи

Даден е низ:

let str = 'xaz xBz xcz x-z x@z';

Намерете всички низове по следния шаблон: буква 'x', главна или малка буква или тире, буква 'z'.

Даден е низ:

let str = 'xaz x$z x-z xcz x+z x%z x*z';

Намерете всички низове по следния шаблон: буква 'x', следвана от долар, или тире, или плюс, следвана от буква 'z'.

Български
AfrikaansAzərbaycanবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Ние използваме бисквитки за работата на сайта, анализ и персонализация. Обработката на данни се извършва в съответствие с Политика за поверителност.
приемам всички настройки отхвърляне