JavaScripti regexi vaste näide - kuidas kasutada stringi JS-i asendamist

Arendajad on tekstiredaktoreid kasutanud pikka aega. Ja nagu enamikul tööriistadest, on ka kõigil tekstiredaktoritel üks ühine funktsioon: leidmine ja asendamine.

Kui olete mõnda aega kasutanud leidmist ja asendamist, võite teada, kui kasulik see funktsioon on. Kuid enamik meist ei tea, et see tööriist on veelgi võimsam, kui me mõistame.

See ei asenda mitte ainult tavalisi stringe, vaid ka mustreid. Neid mustreid nimetatakse regulaaravaldisteks .

Regulaaravaldised eksisteerivad JavaScriptis ja enamikus teistes programmeerimiskeeltes. Regex (lühidalt) on väga võimas tööriist, mis aitab teil leida nii lihtsaid kui ka keerukamaid otsingumustreid.

Stringiotsingu algoritmid on ka arvutiteaduse oluline haru. Selles artiklis õpime, kuidas seda hämmastavat tööriista JavaScripti kasutada.

Miks tavalised väljendid?

Te ei saa tavaliste avaldiste tegelikust tähtsusest aru enne, kui teile antakse pikk dokument ja teil kästakse sellest kõik e-kirjad välja tõmmata.

Saate seda teha käsitsi, kuid on olemas ülikiire meetod, mis saab seda teie eest teha. Enamik kaasaegseid tekstiredaktoreid lubavad Regexi oma Find-valikus. Tavaliselt tähistatakse seda .*.

Ja see pole kõik, mida regex suudab teha - meilid on vaid näide. Võite otsida mis tahes tüüpi stringi, mis järgib mustrit, näiteks URL-e või sulgude vahelist teksti.

Regexi saab kasutada ka teatud tüüpi mustrite valideerimiseks, näiteks e-posti valideerimiseks. Võite asendada mõne pika valideerimisloogika:

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; };

Ühe sellise reaga:

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); }

Kuigi see regulaarne väljend tundub hirmutav, ei pea see siiski midagi meelde jätma. Kui olete aru saanud, kuidas see töötab, on selle rakendamine ülilihtne.

JavaScripti regex-vaste

JavaScripti keeles on meil stringide vaste meetod. Seda meetodit saab kasutada Regexi sobitamiseks stringis.

See meetod on sama mis tekstiredaktorites leidmise meetod. See otsib regexiga antud stringi ja tagastab kõigi vastete massiivi. Sobitusmeetodi prototüüp on järgmine:

str.match(regexp)

See tagastab kõigi vastete massiivi stringist ( str) regulaaravaldise ( regexp) otsimisel .

Selle meetodi põhiline kasutamine oleks kõigi stringis olevate sõnade loendamine. Näiteks:

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

Selle \w+regulaaravaldise kohta saame teada hiljem sellest artiklist.

Selliste regulaaravaldiste abil saame täita mitmesuguseid ülesandeid, mis muidu nõuaksid tüütu loogika kirjutamist. Näitena võib tuua e-posti valideerimise funktsiooni. Peame testima kõiki kriteeriume, kuid regexi abil saate seda lihtsustada.

Regulaaravaldised kehtivad enamikus stringifunktsioonides, kuid kui soovite selles kindel olla, kontrollige funktsiooni prototüüpi. Üks selline meetod on asendusmeetod. Lisateavet selle kohta leiate allpool.

JavaScripti asendamise meetod

Javascriptil on mitmeid stringi utiliidi funktsioone. Asenda on üks neist. Asendusmeetodi prototüüp on järgmine:

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

Nagu näete, toimib asendusmeetod stringile ja tagastab stringi. Selleks on vaja kahte parameetrit: asendatav string ja millega see asendatakse.

Esimene parameeter võib olla kas string või regulaarne avaldis. Siin saame kasutada regulaaravaldiste jõudu keerukate otsingumustrite asendamiseks mõne stringiga.

Teine parameeter võib olla ka funktsioon. Selle demonstreerimiseks tutvume ühe näitega:

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"

See näide tühistab stringi iga sõna. Nii nagu näete, on asendamine koos regexiga JavaScripti väga võimas tööriist.

Asendusmeetodist võib olla kasu, kui soovite pärast algse stringi mõningast töötlemist konkreetse otsingumustri asendada mõne muu stringiga.

Seda saab kasutada ka kehtetu vaste parandamiseks - näiteks e-posti kinnitamiseks ja võimaluse korral kehtetu meili parandamiseks.

Nüüd, kui me teame, kui kasulik on Regex, õpime mõned tavalised regulaaravaldised ja otsime stringe.

Põhilised regulaaravaldised

Kuigi regulaarsed väljendid on suur teema, on põhilisi väljendeid väga lihtne mõista ja meelde jätta. Püüdkem mõista mõnda regulaaravaldistega seotud põhiterminit.

Sõnasõnalised

Sõnasõnaline on iga märk, mis hinnatakse ennast ja mitte mingil üldisemal kujul. Seega wordon ka kehtiv regulaaravaldis, mis sobib ainult sõnaga .

Kui soovite asendada JavaScripti antud sõna kõik eksemplarid, saate seda teha:

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." */

See asendab kõik JavaScripti esinemised JS-iga. Selle saavutasime gidentifikaatori abil, mis tähistab globaalset otsingut. See tähendab, et see otsib kõiki esinemisi, mitte ainult esimest.

Samuti on olemas iidentifikaator. See tähistab suurt ja väiketähtsat otsingut. See sobib stringiga, ignoreerides juhtumit.

Thus a literal can be used to match a specific character or group of characters.

Meta-characters

A meta-character is used for generic search, such as to search any digit, any character, or any alpha-numeric character. These are some common meta-characters:

  • \d matches any digit, that is, digits from 0 to 9
  • \w matches any alpha-numeric character, That is, alphabets a-z, A-Z and digits 0-9.
  • \s matches any whitespace

Similarly, \D , \W and \S match any non-digit, non-alphanumeric, and non-whitespace characters, respectively. For example, \d\d\d would match any three digits in a row.

Quantifiers

A quantifier is used to quantify any literal or meta-character. It can be used to select multiple occurrences of a given character. There are four types of quantifiers defined in regex:

  • * is used to match 0 or more occurrences of a given character.
  • + is used to match 1 or more occurrences of a given character.
  • . is used to match either no occurrence or 1 occurrence of a given character.
  • {min,max} or {n} can be used to match a number of occurrences in a range or a given number of times n

An example would be the one we used above to reverse every word in a string.

  • \w+ matches every word in a string
  • \w matches any alpha-numeric character
  • \w+ matches one or more occurrences of an alpha-numeric character, that is, every word in a string.

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.

Kui olete regexi valdanud, saate seda kasutada JavaScripti vastega ja asendada meetodid pikkade programmide lihtsustamiseks ja kasutada seda teatud mustrite kinnitamiseks. Regex aitab ka lühendada pikki programme ja muuta need arusaadavamaks.

Nüüd saate kasutada oma loovust ja teha imelist regexi - nii palju edu teie uue oskuse juures.

See oli regulaaravaldiste väga põhiline ülevaade. Kui soovite regexi kunsti omandada, soovitan teil tutvuda siin Daniel Shiffmani õpetusega.

Hei, ma loodan, et teile meeldis see artikkel ja õppisite midagi . Mind leiate minu Interneti-kodust, theabbie.github.io või minu Githubist. Vaadake mu teisi artikleid. Aitäh.