Laipni lūdzam šajā pilnīgajā JavaScript regulāro izteiksmju rokasgrāmatā! Šajā rakstā mēs detalizēti izpētīsim, kas ir regulārās izteiksmes, kā tās tiek izmantotas JavaScript un kā tās var palīdzēt vienkāršot un optimizēt kodu. No pamatiem līdz praktiskiem piemēriem, mēs apskatīsim visu, kas jums jāzina, lai sāktu pēc iespējas pilnvērtīgāk izmantot regulārās izteiksmes savos JavaScript projektos. Tātad sāksim!
Ievads regulārajās izteiksmēs
Regulārās izteiksmes ir meklēšanas modeļi, ko izmanto, lai atrastu un apstrādātu tekstu rakstzīmju virknēs. Tie sastāv no burtisku rakstzīmju un metarakstzīmju kombinācijas, kas nosaka īpašus noteikumus atbilstības atrašanai tekstā. Šie noteikumi var ietvert noteiktu rakstzīmju, rakstzīmju diapazonu, atkārtojumu, alternatīvu un daudz ko citu meklēšanu.
Programmā JavaScript regulārās izteiksmes tiek izveidotas, izmantojot klasi RegExp vai izmantojot burtisko /patrón/. Raksts ir pati regulārā izteiksme, kas ir ievietota starp slīpsvītrām. Apskatīsim vienkāršu piemēru:
const regex = /hola/;
Šajā piemērā mēs esam izveidojuši regulāru izteiksmi, kas tekstā meklēs virkni "sveiki". Tagad, kad mums ir pamata izpratne par to, kas ir regulārās izteiksmes, izpētīsim dažus galvenos jēdzienus un uzlabotas metodes darbam ar tām JavaScript.
Regulāro izteiksmju pamata sintakse
JavaScript regulārās izteiksmes sastāv no vairākiem galvenajiem elementiem, kas ļauj definēt sarežģītākus meklēšanas modeļus. Šie elementi ietver burtiskas rakstzīmes, metarakstzīmes, rakstzīmju klases, kvantorus, enkurus un daudz ko citu. Apskatīsim dažus šo elementu piemērus:
Burtiski varoņi
Literālās rakstzīmes ir tās, kuras tiek meklētas, kā tās parādās tekstā. Piemēram, regulārā izteiksme /hola/ teksta virknē meklēs rakstzīmju secību “sveiki”. Ir svarīgi atzīmēt, ka regulārās izteiksmes ir reģistrjutīgas, tāpēc /hola/ nesakritīs "Hello" vai "HELLO".
Metaraksti
Metaraksti ir īpašas rakstzīmes, kurām regulārajās izteiksmēs ir īpaša nozīme. Piemēram, metaraksts . To izmanto, lai attēlotu jebkuru rakstzīmi, izņemot jaunu rindiņu. Vēl viena izplatīta metarakstzīme ir ^, ko izmanto, lai norādītu teksta virknes sākumu. Piemēram, regulārā izteiksme /^hola/ atbilst jebkurai teksta virknei, kas sākas ar "sveiki".
Rakstzīmju klases
Rakstzīmju klases tiek izmantotas, lai meklētu jebkuru rakstzīmi noteiktā komplektā. Piemēram, regulārā izteiksme /[aeiou]/ atbilst jebkuram teksta virknes patskaņam. Rakstzīmju klasēs ir iespējams izmantot arī rakstzīmju diapazonus. Piemēram, regulārā izteiksme /[a-z]/ sakritīs ar jebkuru mazo burtu.
Kvantitori
Kvantori tiek izmantoti, lai norādītu elementa sastopamību skaitu regulārā izteiksmē. Piemēram, kvantors * norāda, ka iepriekšējais elements var parādīties nulle vai vairākas reizes. Kvantifikators + norāda, ka iepriekšējam elementam ir jāparādās vienu vai vairākas reizes. Piemēram, regulārā izteiksme /a+/ atbilst vienam vai vairākiem "a" teksta virknē.
Enkuri
Enkuri tiek izmantoti, lai norādītu atbilstības pozīciju teksta virknē. Piemēram, enkurs \b atbilst vārda robežai. Piemēram, regulārā izteiksme /bholab/ atbilst tikai vārdam "sveiki" kā a pilns vārds, nesaskaņojot garākus vārdus, kas satur vārdu “sveiki”.
Šie ir tikai daži regulāro izteiksmju pamata sintakses piemēri JavaScript valodā. Raksta gaitā mēs izpētīsim sarežģītākus jēdzienus un metodes darbam ar regulārajām izteiksmēm JavaScript valodā.
Pamata atbilstības meklēšana
Viena no visbiežāk veiktajām darbībām ar regulārām izteiksmēm ir atbilstības meklēšana teksta virknē. JavaScript mēs varam izmantot metodi search() lai teksta virknē atrastu regulāras izteiksmes pirmo atbilstību. Apskatīsim piemēru:
const texto = "¡Hola, mundo!"; const regex = /mundo/; const indice = texto.search(regex); console.log(indice); // 7
Šajā piemērā mēs izmantojām metodi search() lai atrastu regulārās izteiksmes pirmo atbilstību /mundo/ teksta virknē "Sveika, pasaule!" Metode search() atgriež pirmās atrastās atbilstības indeksu vai -1, ja atbilstība netiek atrasta.
Papildus metodei search(), JavaScript nodrošina arī citas noderīgas metodes darbam ar regulārām izteiksmēm, piemēram, match(), replace(), split() y test(). Katrai no šīm metodēm ir savs mērķis, un to var izmantot atbilstoši jūsu īpašajām vajadzībām.
Modifikatoru un karogu izmantošana
Programmā JavaScript regulārās izteiksmes var saturēt modifikatorus un karogus, kas ļauj veikt elastīgāku un pielāgotāku meklēšanu. Modifikatori tiek pievienoti regulārās izteiksmes beigām un maina tās darbību. Daži no visizplatītākajiem modifikatoriem ir:
es (nejūtīgs)
modifikators i tiek izmantots, lai veiktu meklēšanu, kas nav reģistrjutīga. Piemēram, regulārā izteiksme /hola/i sakritīs gan ar “hello”, gan “Hello” vai “HELLO”.
g (globāls)
modifikators g To izmanto, lai veiktu globālu meklēšanu visā teksta virknē, nevis apstātos pie pirmās atrastās atbilstības. Piemēram, regulārā izteiksme /a+/g atbilst visiem viena vai vairāku "a" gadījumiem teksta virknē.
m (daudzrindu)
modifikators m To izmanto, lai veiktu meklēšanu vairākās teksta virknes rindās. Piemēram, regulārā izteiksme /^hola/m sakritīs ar vārdu "sveiki" katras teksta virknes rindiņas sākumā.
Papildus modifikatoriem JavaScript regulārajās izteiksmēs ļauj izmantot arī karogus. Veidojot regulāro izteiksmi, izmantojot klasi, karodziņi tiek pievienoti aiz otrās slīpsvītras RegExp. Daži no visizplatītākajiem karogiem ir:
es (nejūtīgs)
Tāpat kā modifikators i, karogs i veic meklēšanu, kas nav reģistrjutīga. Piemēram, regulārā izteiksme new RegExp("hola", "i") sakritīs gan ar “hello”, gan “Hello” vai “HELLO”.
g (globāls)
Tāpat kā modifikators g, karogs g veic globālu meklēšanu visā teksta virknē. Piemēram, regulārā izteiksme new RegExp("a+", "g") atbilst visiem viena vai vairāku "a" gadījumiem teksta virknē.
m (daudzrindu)
Tāpat kā modifikators m, karogs m veic meklēšanu vairākās teksta virknes rindās. Piemēram, regulārā izteiksme new RegExp("^hola", "m") sakritīs ar vārdu "sveiki" katras teksta virknes rindiņas sākumā.
Modifikatoru un karodziņu izmantošana JavaScript regulārajās izteiksmēs var būt ļoti noderīga, lai pielāgotu meklēšanu dažādiem gadījumiem un konkrētām prasībām. Eksperimentējiet ar tiem un atklājiet, kā varat maksimāli izmantot šīs funkcijas savā kodā.
Metaraksti un īpašās rakstzīmes
Metarakstzīmes un īpašās rakstzīmes ir galvenie elementi regulārajās izteiksmēs, kas ļauj veikt efektīvāku un elastīgāku meklēšanu. Mēs jau esam minējuši dažus metarakstus, piemēram, . y ^, taču ir daudz citu, ko varat izmantot regulārajās izteiksmēs. Apskatīsim dažas no visizplatītākajām metarakstzīmēm un īpašām rakstzīmēm:
. (punkts)
Metavaronis . To izmanto, lai attēlotu jebkuru rakstzīmi, izņemot jaunu rindiņu. Piemēram, regulārā izteiksme /h.t/ atbildīs “hat”, “karsts”, “trāpīt” un jebkurš cits trīs burtu vārds, kas sākas ar “h” un beidzas ar “t”.
\ (slīpssvītra)
Atpakaļvērstā slīpsvītra tiek izmantota, lai regulārā izteiksmē izmantotu speciālās rakstzīmes. Piemēram, ja vēlaties teksta virknē meklēt burtisku punktu, jums tas ir jāatceļ, izmantojot atpakaļvērstās slīpsvītru. Regulārā izteiksme /www\.google\.com/ atbilst teksta virknei “www.google.com”.
\d (cipars)
Metavaronis \d tiek izmantots, lai meklētu jebkuru ciparu no 0 līdz 9. Piemēram, regulārā izteiksme /\d+/ sakritīs ar vienu vai vairākiem cipariem teksta virknē.
\w (burtciparu rakstzīme)
Metavaronis \w tiek izmantots, lai meklētu jebkuru burtciparu rakstzīmi (lielos un mazos burtus, ciparus un pasvītras). Piemēram, regulārā izteiksme /\w+/ atbilst jebkuram vārdam, kas sastāv no vienas vai vairākām burtciparu rakstzīmēm teksta virknē.
Šie ir tikai daži metarakstzīmju un speciālo rakstzīmju piemēri, ko varat izmantot regulārajās izteiksmēs. Iepazīstoties ar JavaScript regulārajām izteiksmēm, jūs atklāsiet daudz dažādu iespēju meklēšanas un teksta manipulāciju uzlabošanai.
Rakstzīmju klases un diapazoni
Rakstzīmju klases ir vēl viens galvenais regulāro izteiksmju elements, kas ļauj meklēt jebkuru rakstzīmi noteiktā kopā. JavaScript mēs varam izmantot iekavas [] lai definētu rakstzīmju klasi. Apskatīsim dažus rakstzīmju klašu un diapazonu piemērus:
[aeiou]
Rakstzīmju klase [aeiou] atbilst jebkuram patskaņam teksta virknē. Piemēram, regulārā izteiksme /[aeiou]/ teksta virknē atbildīs "a", "e", "i", "o" vai "u".
[az]
Rakstzīmju diapazons [a-z] atbilst visiem mazajiem burtiem angļu alfabētā. Piemēram, regulārā izteiksme /[a-z]/ atbilst jebkuram teksta virknes mazajam burtam.
[0-9]
Rakstzīmju diapazons [0-9] atbilst jebkuram teksta virknes ciparam no 0 līdz 9. Piemēram, regulārā izteiksme /[0-9]/ atbilst jebkuram viencipara skaitlim.
[A-Z-z]
Rakstzīmju klase [A-Za-z] sakritīs ar jebkuru angļu alfabēta lielo vai mazo burtu. Piemēram, regulārā izteiksme /[A-Za-z]/ atbilst jebkuram teksta virknes burtam.
Rakstzīmju klases un diapazoni ļauj mums definēt noteiktas rakstzīmju kopas, kuras meklēt regulārajā izteiksmē. Izmantojiet tos, lai pielāgotu meklēšanu savām īpašajām vajadzībām un ierobežojumiem.
Kvantifikatori un atkārtojumi
Kvantori un atkārtojumi ir galvenie elementi regulārajās izteiksmēs, kas ļauj mums norādīt elementa atkārtojumu skaitu teksta virknē. Apskatīsim dažus no visbiežāk sastopamajiem JavaScript kvantoriem:
* (zvaigznīte)
Kvantifikators * norāda, ka iepriekšējais elements var parādīties nulle vai vairākas reizes. Piemēram, regulārā izteiksme /a*/ teksta virknē sakritīs ar nulli vai vairāk “a”.
+ (vēl)
Kvantifikators + norāda, ka iepriekšējam elementam ir jāparādās vienu vai vairākas reizes. Piemēram, regulārā izteiksme /a+/ atbilst vienam vai vairākiem "a" teksta virknē.
? (jautājums)
Kvantifikators ? norāda, ka iepriekšējais elements var parādīties nulle vai vienu reizi. Piemēram, regulārā izteiksme /colou?r/ sakritīs gan ar “krāsu”, gan “krāsu”.
{n} (tieši n reizes)
Kvantifikators {n} norāda, ka iepriekšējam elementam ir jāparādās tieši n reizes. Piemēram, regulārā izteiksme /a{3}/ teksta virknē atbildīs tieši trim "a".
{n,} (vismaz n reizes)
Kvantifikators {n,} norāda, ka iepriekšējam elementam ir jāparādās vismaz n reizes. Piemēram, regulārā izteiksme /a{2,}/ teksta virknē atbildīs diviem vai vairākiem "a".
{n,m}
Kvantifikators {n,m} norāda, ka iepriekšējam elementam ir jāparādās vismaz n reizes un ne vairāk kā m reizes. Piemēram, regulārā izteiksme /a{2,4}/ teksta virknē atbilst diviem, trim vai četriem "a".
Šie ir tikai daži kvantoru piemēri, kurus varat izmantot regulārajās izteiksmēs. Kvantori ļauj mums norādīt atkārtošanās modeļus teksta meklējumos un manipulācijās, atvieglojot konkrētas informācijas izgūšanu no teksta virknēm.
Enkuri un vārdu robežas
Enkuri un vārdu robežas ir elementi, kas ļauj norādīt atbilstības pozīciju teksta virknē. Šie elementi ir īpaši noderīgi, ja vēlamies meklēt veselus vārdus vai pārliecināties, ka atbilstība ir rindas sākumā vai beigās. Apskatīsim dažus enkuru un vārdu robežu piemērus:
\b (vārda robeža)
Vārdu ierobežojums \b atbilst robežai starp burtciparu rakstzīmi un rakstzīmi, kas nav burtciparu rakstzīme. Piemēram, regulārā izteiksme /\bjavascript\b/ sakritīs tikai vārds “javascript” kā pilnīgs vārds, nevis atbilst garākiem vārdiem, kuros kā daļa ir “javascript”.
^ (rindas sākums)
Raksturs ^ To lieto, lai norādītu teksta virknes rindas sākumu. Piemēram, regulārā izteiksme /^hola/ sakritīs ar vārdu "sveiki" katras teksta virknes rindiņas sākumā.
$ (rindas beigas)
Raksturs $ To lieto, lai norādītu teksta virknes rindas beigas. Piemēram, regulārā izteiksme /mundo$/ sakritīs ar vārdu "pasaule" katras teksta virknes rindiņas beigās.
\A (teksta sākums)
Raksturs \A To lieto, lai norādītu visa teksta sākumu teksta virknē, nevis tikai rindas sākumu. Piemēram, regulārā izteiksme /^\AHola/ visa teksta sākumā sakritīs ar vārdu "Sveiki".
\Z (teksta beigas)
Raksturs \Z tiek izmantots, lai norādītu visa teksta beigas teksta virknē, nevis tikai rindas beigas. Piemēram, regulārā izteiksme /Mundo\Z/ visa teksta beigās sakritīs ar vārdu "Pasaule".
Enkuri un vārdu robežas ļauj mums meklēt atbilstības noteiktās vietās teksta virknē, kas var būt noderīga situācijās, kad vēlamies nodrošināt atbilstību noteiktā vietā.
Grupas un tver
Grupas un tvērumi ir uzlaboti elementi regulārajās izteiksmēs, kas ļauj grupēt apakšizteiksmes un tvert tās vēlākai lietošanai. Apskatīsim, kā darbojas grupas un tvertnes:
( ) (iekavās)
Iekavas ir Viņi mēdz grupēt apakšizteiksmes regulārā izteiksmē. Piemēram, regulārā izteiksme /(d{2})-(d{2})-(d{4})/ se izmanto, lai meklētu datumu formātā "dd-mm-gggg. Grupas ( ) Tie ļauj mums atsevišķi tvert dienas, mēneša un gada vērtības.
\1, \2, \3 (grupu atsauces)
Grupu atsauces tiek izmantotas, lai atsauktos uz iepriekš uzņemtām grupām regulārā izteiksmē. Piemēram, regulārā izteiksme /(\w+) \1/ atbilst jebkuram vārdam, kam sekos tas pats vārds, kas atkārtojas. Piemēram, “sveiki sveiki”, “pasaules pasaule” utt.
?: (neuztveršanas grupa)
Simbols ?: To izmanto, lai izveidotu nepārtverošas grupas. Šīs grupas tiek izmantotas, ja vēlamies grupēt apakšizteiksmes, bet nevēlamies tvert rezultātu. Piemēram, regulārā izteiksme /https?:\/\/(?:www\.)?google\.com/ atbilst gan “http://www.google.com”, gan “https://google.com”, bet tver tikai attiecīgo URL daļu.
Grupas un uztveršanas ļauj mums strukturēt un organizēt regulārās izteiksmes efektīvāk un lasāmāk. Tās arī sniedz iespēju uztvert noteiktas vērtības vēlākai izmantošanai mūsu lietojumprogrammās.
Noderīgas metodes darbam ar regulārām izteiksmēm
JavaScript nodrošina vairākas noderīgas metodes darbam ar regulārām izteiksmēm. Šīs metodes ļauj mums veikt parastās darbības, piemēram, teksta virkņu meklēšanu, aizstāšanu un sadalīšanu, izmantojot regulārās izteiksmes. Apskatīsim dažas no šīm metodēm:
atbilst()
Metode match() To izmanto, lai atrastu visas regulārās izteiksmes atbilstības teksta virknē un atgrieztu masīvu ar rezultātiem. Piemēram:
const texto = "¡Hola, mundo!"; const regex = /o/g; const coincidencias = texto.match(regex); console.log(coincidencias); // ["o", "o"]
Šajā piemērā mēs izmantojām metodi match() lai atrastu visas regulārās izteiksmes atbilstības /o/g teksta virknē "Sveika, pasaule!" Metode match() atgriež masīvu ar visām atrastajām atbilstībām.
aizvietot ()
Metode replace() tiek izmantots, lai teksta virknē esošās regulārās izteiksmes atbilstības aizstātu ar jaunu vērtību. Piemēram:
const texto = "¡Hola, mundo!"; const regex = /mundo/; const nuevoTexto = texto.replace(regex, "amigo"); console.log(nuevoTexto); // "¡Hola, amigo!"
Šajā piemērā mēs izmantojām metodi replace() lai aizstātu regulārās izteiksmes atbilstību /mundo/ teksta virknē "Sveika, pasaule!" vārdam "draugs". Metode replace() atgriež jaunu teksta virkni ar veiktajiem aizstāšanas gadījumiem.
sadalīt ()
Metode split() tiek izmantots, lai sadalītu teksta virkni apakšvirkņu masīvā, izmantojot regulāro izteiksmi kā atdalītāju. Piemēram:
const texto = "Hola,mundo,amigo"; const regex = /,/g; const subcadenas = texto.split(regex); console.log(subcadenas); // ["Hola", "mundo", "amigo"]
Šajā piemērā mēs izmantojām metodi split() lai sadalītu teksta virkni "Sveika, pasaule, draugs" apakšvirkņu masīvā, izmantojot regulāro izteiksmi /,/g kā atdalītājs. Metode split() atgriež masīvu ar iegūtajām apakšvirknēm.
pārbaude()
Metode test() To izmanto, lai pārbaudītu, vai regulārai izteiksmei ir kādas atbilstības teksta virknē. Metode atgriežas true ja ir sakritība un false citādi. Piemēram:
const texto = "Hola, mundo!"; const regex = /mundo/; const resultado = regex.test(texto); console.log(resultado); // true
Šajā piemērā mēs izmantojām metodi test() lai pārbaudītu, vai regulārā izteiksme /mundo/ ir visas atbilstības teksta virknē "Sveika, pasaule!". Metode test() atgriezt true jo ir sakritība.
Šīs ir tikai dažas no visizplatītākajām metodēm darbam ar JavaScript regulārām izteiksmēm. Katrai no šīm metodēm ir savs mērķis, un to var izmantot atbilstoši jūsu īpašajām vajadzībām. Eksperimentējiet ar tiem un atklājiet, kā viņi var atvieglot un ātrāk veikt jūsu darbu ar regulārām izteiksmēm.
Bieži uzdotie jautājumi
Kas ir regulārās izteiksmes JavaScript valodā? Regulārās izteiksmes JavaScript valodā ir meklēšanas modeļi, ko izmanto, lai atrastu un manipulētu ar tekstu rakstzīmju virknēs.
Kā izveidot regulāras izteiksmes JavaScript? Regulārās izteiksmes JavaScript tiek izveidotas, izmantojot klasi RegExp vai izmantojot burtisko /patrón/.
Kāda ir atšķirība starp modifikatoriem un karodziņiem regulārajās izteiksmēs? Modifikatori tiek pievienoti regulārās izteiksmes beigām un maina tās darbību. Veidojot regulāro izteiksmi, izmantojot klasi, karodziņi tiek pievienoti aiz otrās slīpsvītras RegExp.
Kāda ir atšķirība starp metodi match() un metode test()? Metode match() To izmanto, lai atrastu visas regulārās izteiksmes atbilstības teksta virknē, un atgriež masīvu ar rezultātiem. Metode test() To izmanto, lai pārbaudītu, vai regulārai izteiksmei ir kādas atbilstības teksta virknē, un atgriež Būla vērtību.
Kā es varu tvert noteiktas vērtības, izmantojot grupas regulārā izteiksmē? Grupas ( ) regulārā izteiksmē ļauj tvert noteiktas apakšizteiksmes. Pēc tam varat atsaukties uz šīm grupām, izmantojot atsauces \1, \2, Uc
Kādas metodes var izmantot, lai strādātu ar regulārām izteiksmēm JavaScript? Ir dažas noderīgas metodes darbam ar regulārām izteiksmēm JavaScript match(), replace(), split() y test(). Katrai no šīm metodēm ir savs mērķis, un to var izmantot atbilstoši jūsu īpašajām vajadzībām.
Secinājums
Regulārās izteiksmes ir spēcīgs rīks darbam ar tekstu JavaScript valodā. Izpratne par regulāro izteiksmju pamatprincipiem , sintakse un uzlabotajām metodēm ļaus jums efektīvi un precīzi meklēt, aizstāt un manipulēt ar teksta virknēm. Sākot ar pamata saskaņošanu un beidzot ar modifikatoru, grupu un citu noderīgu metožu izmantošanu, jūs esat iemācījušies, kā maksimāli izmantot regulārās izteiksmes savos JavaScript projektos.
Atcerieties praktizēt un eksperimentēt ar dažādiem modeļiem un izmantot gadījumus, lai stiprinātu izpratni un zināšanas par regulārām izteiksmēm. Nevilcinieties izmantot regulārās izteiksmes, lai uzlabotu sava koda efektivitāti un kvalitāti!
Indekss
- 1 Ievads regulārajās izteiksmēs
- 2 Regulāro izteiksmju pamata sintakse
- 3 Pamata atbilstības meklēšana
- 4 Modifikatoru un karogu izmantošana
- 5 Metaraksti un īpašās rakstzīmes
- 6 Rakstzīmju klases un diapazoni
- 7 Kvantifikatori un atkārtojumi
- 8 Enkuri un vārdu robežas
- 9 Grupas un tver
- 10 Noderīgas metodes darbam ar regulārām izteiksmēm
- 11 Bieži uzdotie jautājumi
- 12 Secinājums