⊗jsSpREESCh 99 of 294 menu

JavaScriptтеги регулярдуу ифодаларда атайын символдорду экранировкалоо

Атайын символ өзүн-өзү түшүндүрө алышы үчүн, аны тескери кылыч менен экранировкалоо керек. Келгиле, мисалдарды карап көрөлү.

Мисал

Төмөнкү мисалда, регулярдуу ифоданын автору издөө үлгүсү төмөнкүдөй болушун каалаган: тамга 'a', андан кийин плюс '+', андан кийин тамга 'x'. Бирок, коддун автору '+' символун экранировкалаган эмес, ошондуктан иш жүзүндө издөө үлгүсү төмөнкүдөй болуп калган: тамга 'a' бир же бир нече жолу, андан кийин тамга 'x':

let str = 'a+x ax aax aaax'; let res = str.replace(/a+x/g, '!');

Натыйжада өзгөрмөгө төмөнкү жазылат:

'a+x ! ! !'

Мисал

Эми автор плюсту тескери кылыч менен экранировкалаган. Эми издөө үлгүсү керектей болду: тамга 'a', андан кийин плюс '+', андан кийин тамга 'x'.

let str = 'a+x ax aax aaax'; let res = str.replace(/a\+x/g, '!');

Натыйжада өзгөрмөгө төмөнкү жазылат:

'! ax aax aaax'

Мисал

Бул мисалда үлгү төмөнкүдөй: тамга 'a', андан кийин чекит '.', андан кийин тамга 'x':

let str = 'a.x abx azx'; let res = str.replace(/a\.x/g, '!');

Натыйжада өзгөрмөгө төмөнкү жазылат:

'! abx azx'

Мисал

Төмөнкү мисалда автор кылычты экранировкалоону унутту жана регулярдуу ифода бардык подстрокаларды кармады, анткени экранировкаланбаган чекит каалаган символду билдирет:

let str = 'a.x abx azx'; let res = str.replace(/a.x/g, '!');

Натыйжада өзгөрмөгө төмөнкү жазылат:

'! ! !'

Эскертүү

Эгер сиз чекит үчүн тескери кылычты унутсаңыз (ал өзүн-өзү билгизи керек болгондо) - муну байкабай калуу да мүмкүн:

'a.x'.replace(/a.x/g, '!'); // '!' кайтарат, биз каалагандай

Видуалдык түрдө туура иштейт (анткени чекит каалаган символду, анын ичинде кадимки чекитти '.' да билдирет). Бирок, алмаштыруулар жасалган сапты өзгөртсөк - биздин катабызды көрөбүз:

'a.x abx azx'.replace(/a.x/g, '!'); // '! ! !' кайтарат, ал эми '! abx azx' күтүлгөн

Атайын символдордун жана кадимкилердин тизмеси

Эгер кадимки символду экранировкаласаңыз - эч кандай жамандык болбойт - ал дагы өзүн-өзү билдирет. Сандарды кошпогондо - аларды экранировкалоого болбойт.

Көп учурда, берилген символ атайынбы же жокпу деген шек туулат. Кээ бир адамдар бардык күмөндүү символдорду кетирип экранировкалоого чейин барат. Бирок, бул начар практика (регулярдуу ифоданы тескери кылычтар менен бүтөт).

Атайын символдор: $ ^ . * + ? \ / {} [] () |

Атайын символдор эмес: @ : , ' " ; - _ = < > % # ~ `& !

Практикалык тапшырмалар

Сап берилди:

let str = 'a.a aba aea';

'a.a' сабын таба турган, калгандарын кармабаган регулярдуу ифода жазыңыз.

Сап берилди:

let str = '2+3 223 2223';

'2+3' сабын таба турган, калгандарын кармабаган регулярдуу ифода жазыңыз.

Сап берилди:

let str = '23 2+3 2++3 2+++3 345 567';

'2+3', '2++3', '2+++3' саптарын таба турган, калгандарын кармабаган регулярдуу ифода жазыңыз (+ каалаган канча болушу мүмкүн).

Сап берилди:

let str = '23 2+3 2++3 2+++3 445 677';

'23', '2+3', '2++3', '2+++3' саптарын таба турган, калгандарын кармабаган регулярдуу ифода жазыңыз.

Сап берилди:

let str = '*+ *q+ *qq+ *qqq+ *qqq qqq+';

'*q+', '*qq+', '*qqq+' саптарын таба турган, калгандарын кармабаган регулярдуу ифода жазыңыз.

Сап берилди:

let str = '[abc] {abc} abc (abc) [abc]';

Төрт бурчтуу кашаадагы саптарды таап, аларды '!' менен алмаштыра турган регулярдуу ифода жазыңыз.

Кыргызча
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
Биз сайттин иштөөсү, аналитика жана персонализация үчүн cookie файлдарын колдонобуз. Маалыматтарды иштетүү Маалыматты коргоо саясаты боюнча жүргүзүлөт.
баарын кабыл алуу ыңгайлаштыруу четке кагуу