Korzystanie z wyrażeń regularnych

JavaScript:
Korzystanie z wyrażeń regularnych

Jak to zrobić:

Podstawowe Dopasowanie

Na początek możesz stworzyć prosty wzór regex i użyć go do znalezienia dopasowań w ciągu tekstowym. Tutaj znajdziemy słowo “kod”:

const str = "Uwielbiam programować w JavaScript.";
const pattern = /kod/;
const result = pattern.test(str);
console.log(result); // true

Użycie String.prototype.match()

Aby otrzymać tablicę dopasowań:

const matches = str.match(/kod/);
console.log(matches[0]); // "kod"
console.log(matches.index); // 10

Globalne Wyszukiwanie

Aby znaleźć wszystkie dopasowania, użyj flagi g:

const globalMatches = str.match(/o/g);
console.log(globalMatches); // ["o", "o", "o"]

Dopasowanie Niezależne od Wielkości Liter

Flaga i ignoruje wielkość liter:

const caseInsensitiveMatch = "JavaScript jest fajny".match(/javascript/i);
console.log(caseInsensitiveMatch[0]); // "JavaScript"

Zastępowanie Tekstu

Użyj String.prototype.replace(), aby zastąpić części ciągu tekstowego:

const newStr = "JavaScript jest fajny".replace(/fajny/, "niesamowity");
console.log(newStr); // "JavaScript jest niesamowity"

Użycie Grup

Grupy mogą przechwytywać części wzorca:

const groupedPattern = /(\w+) jest (\w+)/;
const replaceWithGroups = "JavaScript jest fajny".replace(groupedPattern, "$2 jest $1");
console.log(replaceWithGroups); // "fajny jest JavaScript"

Biblioteki Stron Trzecich

Chociaż wbudowane możliwości regex JavaScript są potężne, niektóre zadania mogą być uproszczone za pomocą bibliotek takich jak XRegExp. Oferuje dodatkową składnię i flagi, dzięki czemu skomplikowane wzorce są bardziej czytelne:

// Przykład użycia biblioteki XRegExp
const XRegExp = require('xregexp');
const str = "Koty są fantastyczne.";
const unicodeWordMatch = XRegExp.match(str, XRegExp('\\p{L}+'), 'all');
console.log(unicodeWordMatch); // ["Koty", "są", "fantastyczne"]

Ten fragment kodu demonstruje użycie XRegExp do dopasowania wszystkich słów Unicode w ciągu tekstowym, prezentując zdolność biblioteki do obsługi rozszerzonych zestawów znaków, wykraczających poza wbudowane możliwości JavaScript.