Regulární výrazy JavaScriptu
Regulární výraz je posloupnost znaků, která tvoří vyhledávací vzor.
Vzor vyhledávání lze použít pro operace vyhledávání a nahrazování textu.
Co je regulární výraz?
Regulární výraz je posloupnost znaků, která tvoří vyhledávací vzor .
Když vyhledáváte data v textu, můžete tento vyhledávací vzor použít k popisu toho, co hledáte.
Regulární výraz může být jeden znak nebo složitější vzor.
Regulární výrazy lze použít k provádění všech typů operací hledání a nahrazování textu .
Syntax
/pattern/modifiers;
Příklad
/w3schools/i;
Vysvětlený příklad:
/w3schools/i je regulární výraz.
w3schools je vzor (k použití při vyhledávání).
i je modifikátor (upravuje vyhledávání tak, aby nerozlišovalo velká a malá písmena).
Použití řetězcových metod
V JavaScriptu se regulární výrazy často používají se dvěma řetězcovými metodami : search()
a replace()
.
Metoda search()
používá výraz k hledání shody a vrací pozici shody.
Metoda replace()
vrací upravený řetězec, kde je vzor nahrazen.
Použití String search() s řetězcem
Metoda search()
hledá v řetězci zadanou hodnotu a vrací pozici shody:
Příklad
Pomocí řetězce vyhledejte „W3schools“ v řetězci:
let text = "Visit W3Schools!";
let n = text.search("W3Schools");
Výsledek v n bude:
6
Použití String search() s regulárním výrazem
Příklad
Použijte regulární výraz k vyhledávání „w3schools“ v řetězci bez ohledu na velikost písmen:
let text = "Visit W3Schools";
let n = text.search(/w3schools/i);
Výsledek v n bude:
6
Použití řetězce nahradit() řetězcem
Metoda replace()
nahradí zadanou hodnotu jinou hodnotou v řetězci:
let text = "Visit Microsoft!";
let result = text.replace("Microsoft", "W3Schools");
Použijte String replacement() s regulárním výrazem
Příklad
Použijte regulární výraz nerozlišující malá a velká písmena k nahrazení Microsoftu za W3Schools v řetězci:
let text = "Visit Microsoft!";
let result = text.replace(/microsoft/i, "W3Schools");
Výsledek v res bude:
Visit W3Schools!
Všiml sis?
Ve výše uvedených metodách lze použít argumenty regulárních výrazů (místo řetězcových argumentů).
Regulární výrazy mohou učinit vaše vyhledávání mnohem výkonnějším (například nerozlišují malá a velká písmena).
Modifikátory regulárních výrazů
Modifikátory lze použít k provádění globálních vyhledávání bez rozlišení velkých a malých písmen:
Modifier | Description | Try it |
---|---|---|
i | Perform case-insensitive matching | |
g | Perform a global match (find all matches rather than stopping after the first match) | |
m | Perform multiline matching |
Vzory regulárních výrazů
Závorky se používají k nalezení řady znaků:
Expression | Description | Try it |
---|---|---|
[abc] | Find any of the characters between the brackets | |
[0-9] | Find any of the digits between the brackets | |
(x|y) | Find any of the alternatives separated with | |
Metaznaky jsou znaky se zvláštním významem:
Metacharacter | Description | Try it |
---|---|---|
\d | Find a digit | |
\s | Find a whitespace character | |
\b | Find a match at the beginning of a word like this: \bWORD, or at the end of a word like this: WORD\b |
|
\uxxxx | Find the Unicode character specified by the hexadecimal number xxxx |
Kvantifikátory definují množství:
Quantifier | Description | Try it |
---|---|---|
n+ | Matches any string that contains at least one n | |
n* | Matches any string that contains zero or more occurrences of n | |
n? | Matches any string that contains zero or one occurrences of n |
Použití objektu RegExp
V JavaScriptu je objekt RegExp objekt regulárního výrazu s předdefinovanými vlastnostmi a metodami.
Pomocí testu()
Metoda test()
je výrazová metoda RegExp.
Vyhledá v řetězci vzor a vrátí hodnotu true nebo false v závislosti na výsledku.
Následující příklad hledá v řetězci znak "e":
Příklad
const pattern = /e/;
pattern.test("The best things in life are free!");
Protože v řetězci je "e", výstup výše uvedeného kódu bude:
true
Regulární výraz nemusíte nejprve vkládat do proměnné. Dva výše uvedené řádky lze zkrátit na jeden:
/e/.test("The best things in life are free!");
Použití exec()
Metoda exec()
je výrazová metoda RegExp.
Vyhledá řetězec pro zadaný vzor a vrátí nalezený text jako objekt.
Pokud není nalezena žádná shoda, vrátí prázdný (null) objekt.
Následující příklad hledá v řetězci znak "e":
Příklad
/e/.exec("The best things in life are free!");
Kompletní reference RegExp
Úplnou referenci naleznete v naší kompletní referenci JavaScript RegExp Reference .
Odkaz obsahuje popisy a příklady všech vlastností a metod RegExp.