„Regex“ „JavaScript“ atitikties pavyzdys - kaip naudoti „JS Replace“ eilutėje

Kūrėjai ilgą laiką naudojo teksto redaktorius. Kaip ir daugumoje įrankių, visi teksto redaktoriai turi vieną bendrą bruožą: rasti ir pakeisti.

Jei kurį laiką naudojote paieškos ir pakeitimo funkciją, galite žinoti, kokia naudinga ši funkcija. Tačiau dauguma mūsų nežino, kad ši priemonė yra dar galingesnė, nei mes suprantame.

Tai gali pakeisti ne tik paprastas stygas, bet ir modelius. Šie modeliai yra žinomi kaip įprasti posakiai .

Reguliariosios išraiškos egzistuoja „JavaScript“ ir daugumoje kitų programavimo kalbų. „Regex“ (trumpai) yra labai galingas įrankis, padedantis rasti paprastus ir sudėtingus paieškos modelius.

Styginių paieškos algoritmai taip pat yra reikšminga informatikos šaka. Šiame straipsnyje mes sužinosime, kaip naudoti šį nuostabų įrankį „JavaScript“.

Kodėl reguliarūs posakiai?

Tikrai nesuprasite reguliariųjų posakių svarbos, kol jums nepateiks ilgo dokumento ir nebus liepta iš jo ištraukti visus el. Laiškus.

Tai galite padaryti rankiniu būdu, tačiau yra labai greitas metodas, kuris gali tai padaryti už jus. Dauguma šiuolaikinių teksto redaktorių leidžia „Regex“ rasti savo parinktyje „Rasti“. Paprastai tai žymima .*.

Ir tai dar ne viskas, ką gali padaryti regex - el. Laiškai yra tik pavyzdys. Galite ieškoti bet kokio tipo eilutės, kuri eina pagal šabloną, pavyzdžiui, URL arba teksto tarp skliaustų.

Regex taip pat gali būti naudojamas tam tikrų tipų šablonams patvirtinti, pvz., El. Pašto patvirtinimui. Galite pakeisti tokią ilgą patvirtinimo logiką:

function IsValidEmail(email) { if (email.length <= 2) { return false; } if (email.indexOf("@") == -1) { return false; } var parts = email.split("@"); var dot = parts[1].indexOf("."); var len = parts[1].length; var dotSplits = parts[1].split("."); var dotCount = dotSplits.length - 1; if (dot == -1 || dot  2) { return false; } for (var i = 0; i < dotSplits.length; i++) { if (dotSplits[i].length == 0) { return false; } } return true; };

Vienoje tokioje eilutėje:

function isValidEmail(email) { return /^(([^()\[\]\\.,;:\[email protected]"]+(\.[^()\[\]\\.,;:\[email protected]"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/.test(email); }

Nors ši reguliarioji išraiška atrodo bauginanti, jūs neturite to prisiminti. Kai suprasite, kaip tai veikia, tai bus labai paprasta įgyvendinti.

„Regex“ „JavaScript“ atitiktis

„JavaScript“ sistemoje turime stygų atitikimo metodą. Šis metodas gali būti naudojamas norint suderinti „Regex“ eilutėje.

Šis metodas yra tas pats, kaip rasti teksto redaktoriuose. Jis ieško nurodytos eilutės su „Regex“ ir pateikia visų rungtynių masyvą. Rungtynių metodo prototipas yra toks:

str.match(regexp)

Tai grąžins masyvą visų atitikmenų ieškant eilutės ( str) reguliariajai išraiškai ( regexp).

Pagrindinis šio metodo panaudojimas būtų visų eilutės žodžių skaičiavimas. Pavyzdžiui:

var str = "This is a test string"; var matchArr = str.match(/\w+/g); console.log(matchArr.length); //prints 5

Apie šią \w+taisyklingą išraišką sužinosime vėliau šiame straipsnyje.

Naudodami tokias taisyklingas išraiškas galime atlikti įvairias užduotis, kurios priešingu atveju reikalautų parašyti varginančią logiką. Pavyzdys buvo el. Pašto patvirtinimo funkcija. Turime išbandyti visus kriterijus, tačiau naudodami regex galite jį supaprastinti.

Reguliarūs posakiai galioja daugumoje eilutės funkcijų, tačiau jei norite būti tikri, turėtumėte patikrinti funkcijos prototipą. Vienas iš tokių metodų yra „Replace“ metodas. Sužinokime daugiau apie tai žemiau.

„JavaScript“ pakeitimo metodas

„JavaScript“ turi daugybę eilutės naudingumo funkcijų. Pakeisti yra vienas iš jų. Pakeitimo metodo prototipas yra toks:

const newStr = str.replace(regexp|substr, newSubstr|function)

Kaip matote, pakeitimo metodas veikia eilutę ir grąžina eilutę. Tam reikalingi du parametrai: eilutė, kurią reikia pakeisti, ir tai, kuo ji bus pakeista.

Pirmasis parametras gali būti eilutė arba reguliarioji išraiška. Čia mes galime naudoti reguliarių posakių galią, kad sudėtingus paieškos modelius pakeistume tam tikra eilute.

Antrasis parametras taip pat gali būti funkcija. Norėdami tai parodyti, patikrinkime pavyzdį:

var str = "This is a test string"; var newStr = str.replace(/\w+/g, function(match) { return match.split("").reverse().join(""); }); console.log(newStr); //prints "sihT si a tset gnirts"

Šis pavyzdys pakeičia kiekvieną eilutės žodį. Taigi, kaip matote, pakeitimas kartu su regex yra labai galingas „JavaScript“ įrankis.

Pakeitimo metodas gali būti naudingas, jei po tam tikros pradinės eilutės apdorojimo norite pakeisti konkretų paieškos modelį kita eilute.

Jis taip pat gali būti naudojamas neteisingai atitikčiai ištaisyti - pavyzdžiui, patvirtinti el. Paštą ir, jei įmanoma, ištaisyti netinkamą el. Laišką.

Dabar, kai žinome, koks naudingas yra „Regex“, sužinokime keletą pagrindinių reguliarių posakių ir ieškokime eilučių.

Pagrindiniai reguliarūs posakiai

Nors reguliarūs posakiai yra didžiulė tema, pagrindinius juos suprasti ir įsiminti yra labai paprasta. Pabandykime suprasti kai kuriuos pagrindinius terminus, susijusius su reguliariomis išraiškomis.

Literatai

Pažodinis yra bet koks simbolis, kuris yra vertinamas kaip savaime, o ne bet bendro rūšies. Taigi, wordtaip pat yra galiojantis reguliarus posakis, kuris atitiks tik žodį .

Jei norite pakeisti visus nurodyto žodžio „JavaScript“ egzempliorius, galite tai padaryti:

var str = "JavaScript is a very popular programming language. javascript is used in web developement. javascript is very easy to learn."; var newStr = str.replace(/javascript/gi,"js"); console.log(newStr); /* prints "js is a very popular programming language. js is used in web developement. js is very easy to learn." */

Tai pakeičia visus „JavaScript“ atvejus JS. Tai pasiekėme naudodami gidentifikatorių, kuris reiškia visuotinę paiešką. Tai yra, ji ieško visų įvykių, o ne tik pirmojo.

Taip pat yra iidentifikatorius. Tai reiškia didžiųjų ir mažųjų raidžių paiešką. Ji atitinka eilutę, ignoruojančią bylą.

Taigi pažodinis žodis gali būti naudojamas tam, kad atitiktų konkretų veikėją ar simbolių grupę.

Metaženklai

Meta simbolių naudojamas bendrinis paieškoje, pavyzdžiui, ieškoti bet kokių skaičių, bet kokį simbolį, arba bet alfa-skaitiniai charakterį. Tai yra keli įprasti metaženkliai:

  • \d atitinka bet kurį skaitmenį, tai yra, skaitmenys nuo 0 iki 9
  • \w sutampa su bet kuriuo raidiniu ir skaitmeniniu simboliu, ty abėcėlėmis az, AZ ir skaitmenimis 0–9.
  • \s atitinka bet kokį tarpą

Panašiai \D, \Wir \Satitiktų visus ne-skaitmenų, ne raidinių skaitmeninių ir simbolių be tarpų, atitinkamai. Pavyzdžiui, \d\d\datitiktų bet kokius tris skaitmenis iš eilės.

Kiekybiniai koeficientai

Quantifier naudojamas įvertinti bet kokį pažodžiui arba meta simbolių. Juo galima pasirinkti kelis nurodyto simbolio atvejus. Regexe apibrėžti keturi kvantorių tipai:

  • * naudojamas 0 ar daugiau nurodyto simbolio įvykiams suderinti.
  • + naudojamas norint suderinti 1 ar daugiau nurodyto simbolio.
  • . yra naudojamas, kad atitiktų nurodyto simbolio nepasitaikymą arba 1 atvejį.
  • {min,max}arba {n}gali būti naudojamas norint suderinti įvykių skaičių diapazone arba nurodytą kartų skaičių n

Pavyzdys galėtų būti tas, kurį mes naudojome aukščiau, norėdami pakeisti kiekvieną eilutės žodį.

  • \w+ atitinka kiekvieną eilutės žodį
  • \w atitinka bet kurį raidinį ir skaitinį simbolį
  • \w+ atitinka vieną ar daugiau raidžių ir skaitmenų, ty kiekvieną eilutės žodį.

We could also use quantifiers to replace multiple whitespaces with a single whitespace. For example:

var str = "This is a string with multiple whitespaces"; var newStr = str.replace(/\s\s+/g, " "); console.log(newStr); //prints "This is a string with multiple whitespaces"

There are plenty of other uses for quantifiers.

Position meta-characters

There are also position meta-characters which represent a position. For example ^ represents the start of a line, $ represents end of a line, and \b represents word boundaries.

Conclusion

In this article, we learned how important regular expressions are. We also saw how they can be used for searching simple as well as complex search patterns.

This has great potential in programming with text. String-matching algorithms are used in DNA matching and form a significant branch of computer science.

Kai įsisavinsite regex, galėsite jį naudoti su „JavaScript“ atitiktimi ir pakeisti ilgų programų supaprastinimo metodus ir naudoti tam tikrų modelių patvirtinimui. „Regex“ taip pat gali padėti sutrumpinti ilgas programas ir padaryti jas suprantamesnes.

Dabar galite pasitelkti savo kūrybiškumą ir sukurti nuostabų regexą - taip pasiseka su naujais įgūdžiais.

Tai buvo labai paprasta reguliarių posakių apžvalga. Jei norite įvaldyti regex meną, siūlau čia perskaityti Danielio Shiffmano pamoką.

Ei, tikiuosi, kad patiko šis straipsnis ir kažko sužinojai . Mane galite rasti mano interneto namuose, theabbie.github.io arba mano „Github“. Peržiūrėkite kitus mano straipsnius. Ačiū.