⊗jsSpREHHy 110 of 294 menu

Yhdysmerkki joukkojen sisällä JavaScriptin säännöllisissä lausekkeissa

Yhdysmerkki - myös erikoismerkki [ ]:n sisällä (mutta ulkopuolella - ei). Jos tarvitset yhdysmerkin itsessään symbolina - aseta se paikkaan, jossa se ei tulkita ryhmän erottajaksi.

Miksi tämä on tärkeää: voit luoda merkkiryhmän huomaamatta sitä. Esimerkiksi, näin - '[:-@]' - luulet valitsevasi kaksoispisteen, yhdysmerkin ja @-merkin, mutta itse asiassa saadaan merkkiryhmä välillä : ja @. Tähän ryhmään kuuluvat seuraavat merkit: ? < = > : ;

Mistä ne ovat peräisin? ASCII-taulukosta - kaksoispisteellä on pienempi numero kuin @-merkillä - ja niin muodostuu ryhmä. Eli kaikki ryhmät muodostuvat ASCII-taulukon mukaan (haluttaessa tätä voidaan hyödyntää).

Kuinka torjua tätä: aseta yhdysmerkki paikkaan, jossa sitä ei varmasti tulkita ryhmäsymboliksi, esimerkiksi alkuun tai loppuun (eli [:n jälkeen tai ennen ]:tä).

Yhdysmerkin voi myös escapeta - silloin se tarkoittaa itseään riippumatta asemasta. Esimerkiksi, [:-@]:n sijaan kirjoita [:\-@] - eikä ryhmää enää ole, vaan on kolme merkkiä - kaksoispiste, yhdysmerkki ja @-merkki @.

Esimerkki

Seuraavassa esimerkissä hakumalli on seuraava: numero 1, sitten kirjain väliltä 'a' 'z':aan, sitten numero 2:

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

Tuloksena muuttujaan kirjoitetaan seuraava:

'! 1-2 ! !'

Esimerkki

Escapeetaan nyt yhdysmerkki. Tuloksena hakumalli on seuraava: numero 1, sitten kirjain 'a', tai yhdysmerkki, tai kirjain 'z', sitten numero 2:

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

Tuloksena muuttujaan kirjoitetaan seuraava:

'! ! 1c2 !'

Esimerkki

Yhdysmerkin voi yksinkertaisesti siirtää, escapetta sitä:

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

Tuloksena muuttujaan kirjoitetaan seuraava:

'! ! 1c2 !'

Esimerkki

Seuraavassa esimerkissä hakumalli on seuraava: ensimmäinen merkki on pieniä kirjaimia tai yhdysmerkki '-', sitten kaksi kirjainta 'x':

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

Tuloksena muuttujaan kirjoitetaan seuraava:

'! Axx ! @xx'

Esimerkki

Seuraavassa esimerkissä hakumalli on seuraava: ensimmäinen merkki on pieniä, suuria kirjaimia tai yhdysmerkki '-', sitten kaksi kirjainta 'x':

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

Tuloksena muuttujaan kirjoitetaan seuraava:

'! ! ! @xx'

Esimerkki

Yhdysmerkin voi sijoittaa kahden ryhmän väliin - siellä se varmasti vielä tee toista ryhmää:

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

Tuloksena muuttujaan kirjoitetaan seuraava:

'! ! ! @xx'

Käytännön tehtävät

Annettu merkkijono:

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

Etsi kaikki merkkijonot seuraavan mallin mukaan: kirjain 'x', iso tai pieni kirjain tai yhdysmerkki, kirjain 'z'.

Annettu merkkijono:

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

Etsi kaikki merkkijonot seuraavan mallin mukaan: kirjain 'x', sitten joko dollarimerkki, tai yhdysmerkki tai plusmerkki, sitten kirjain 'z'.

Suomi
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Käytämme evästeitä verkkosivuston toiminnalle, analytiikalle ja personoinnille. Tietojen käsittely tapahtuu Tietosuojakäytännön mukaisesti.
hyväksy kaikki mukauta hylkää