The RegExp object is used for matching text with a pattern.
It introduced PCRE from ES3.
Create a Regular Expression
RegExp instance can be created by the constructor or literal notation.
Please see the 3 ways below.
const re = /ab+c/i;
const re = new RegExp('ab+c', 'i');
const re = new RegExp(/ab+c/, 'i'));
The pattern syntax is below.
/PATTERN/FLAG
/ symbol means to start and end.
In other words, a regular expression pattern should be between the //.
Flag
The flag is optional and functional.
| Flag | Description | Corresponding Property |
| d | Generate indices for substring matches | hasIndices |
| g | Global search | global |
| i | Case-insensitive search | ignoreCase |
| m | Multi-line search | multiline |
| s | Allows . to match newline characters | dotAll |
| u | Treat a pattern as a sequence of Unicode code points | unicode |
| y | Perform a "sticky" search | sticky |
Pattern
Quantifiers
| Character | Meaning |
| * | Matches the preceding item 0 or more times |
| + | Matches the preceding item 1 or more times |
| ? | Matches the preceding item 0 or 1 times |
| {n} | Matches exactly n occurrences of the preceding item Where n is a positive integer |
| {n,} | Matches at least n occurrences of the preceding item Where n is a positive integer |
| {n,m} | Matches at least n and at most m occurrences of the preceding item Where both n and m are a positive integer and m > n |
| *?, +?, ?? {n}?, {n,}?, {n,m}? |
By default quantifiers are greedy The ? character after the quantifier makes the quantifier non-greedy |
Assertions
| Character | Meaning |
| ^ | Matches the beginning of input |
| $ | Matches the end of input |
| \b | Matches a word boundary |
| \B | Matches a non-word boundary |
| x(?=y) | Matches x only if x is followed by y |
| x(?|y) | Matches x only if x is not followed by y |
| (?<=y)x | Matches x only if x is preceded by y |
| (?<!y)x | Matches x only if x is not preceded by y |
Groups and Backreferences
| Character | Meaning |
| (x) | Matches x and remembers the match |
| (?<Name>x) | Matches x and stores it on the groups property of the returned matches under the name specified by <Name> |
| (?:x) | Matches x but does not remember the match |
| \n | A back reference to the last substring matching the n parenthetical in the regular expression Where n is a positive integer |
| \k<Name> | A back reference to the last substring matching the named capture group specified by <Name> |
Character Classes
| Character | Meaning |
| [xyz] [a-z] |
Matches any one of the closed characters We can specify a range of characters by using a hyphen |
| [^xyz] [^a-z] |
Matches anything that is not enclosed in the brackets |
| . | Matches any single character except line terminators |
| \d | Matches any digit |
| \D | Matches any character that is not a digit |
| \w | Matches any alphanumeric character from the basic Latin alphabet, including the underscore. |
| \W | Matches any character that is not a word character from the basic Latin alphabet |
| \s | Matches a single white space character, including space, tab, form feed, line feed, and other Unicode spaces |
| \S | Matches a single character other than white space |
| \t | Matches a horizontal tab |
| \r | Matches a carriage return |
| \n | Matches a line feed |
| \v | Matches a vertical tab |
| \f | Matches a form feed |
| [\b] | Matches a backspace |
| \0 | Matches a NUL character |
| \cX | Matches a control character using caret notation Where X is a letter from A-Z |
| \xhh | Matches the character with the code hh (2 hexadecimal digits) |
| \uhhhh | Matches a UTF-16 code-unit with the value hhhh (4 hexadecimal digits) |
| \u{hhhh} or \u{hhhhh} | Matches the character with the Unicode value U+hhhh or U+hhhhh (4 or 5 hexadecimal digits) |
| \ | Indicates that the following character should be treated specially or escaped. |
| x|y | Matches either x or y |
RegExp Method
exec()
This method executes a search for a match in a specified string.
It returns a result array or null.
const re = /pattern/;
re.exec('target string');
test()
This method executes a search for a match between a regular expression and a specified string.
It returns true or false.
const re = /pattern/;
re.test('target string');
toString()
This method returns a string representing the regular expression.
const re = /pattern/;
console.log(re.toString()); // /pattern/
match()
This method is the method of a String object.
It returns a result array or null.
'target string'.match(/pattern/);
Example
This example checks if the URL starts with HTTP or HTTPS.
const url = 'https://example.com';
/^https?:\/\//.test(url);
This example checks whether the cell phone number format fits.
const mobile = '010-1234-54678';
/^\d{3}-d{3,4}-\d{4}$/.test(mobile);
This example checks if the ID consists of 4 to 10 alphanumeric characters.
const id ='q1w2e3';
/^[A-Za-z0-9]{4,10}$/.test(id);'Web > JavaScript' 카테고리의 다른 글
| [JavaScript] Set Object (0) | 2022.07.13 |
|---|---|
| [JavaScript] String Object (0) | 2022.07.10 |
| [JavaScript] Date Object (1) | 2022.07.09 |
| [JavaScript] Math Object (2) | 2022.07.08 |
| [JavaScript] Number Object (0) | 2022.07.07 |
댓글