A RegEx is the short form of the Regular Expression, which is the sequence of characters that define a pattern. The characters in a RegEx can be alphabets, numbers or special characters. Usually, RegEx is used to find a pattern in a string to replace, delete or modify them. In ES6, a RegEx can be defined by 2 different notations.
- Literal notation: The pattern is enclosed between slashes. It is executed in compile time. So, constant patterns can be given in literal notation.
var regex = /pattern/
- Constructor function: The pattern is given inside single quotes. It is executed in runtime. So, flexible patterns can be given in constructor function.
var regex = new RegExp( pattern, optional arguments)
There are different ways of mentioning patterns which are listed below:
Use of Brackets: It is used to mention a particular range of characters in a pattern.
Patterns with brackets | Description |
---|---|
[pattern] | Any one character from the pattern. |
[^pattern] | Any one character not from the pattern. |
[0-9] | Any one decimal number between 0-9. |
[a-z] | Any one character from the lower case alphabets. |
[A-Z] | Any one character from the upper case alphabets. |
Use of Quantifiers: It is used to specify the frequency and position of characters in a pattern.
Quantifiers | Description |
---|---|
pattern+ | Matches strings with atleast one or more pattern. |
pattern* | Matches strings with zero or more patterns. |
pattern{n} | Matches strings with ‘n’ number of patterns. |
pattern{n1, n2} | Matches strings with patterns in range from n1 to n2 (Both inclusive). |
pattern{n, } | Matches strings with minimum ‘n’ number of patterns. |
pattern$ | Matches strings with pattern as the end sequence. |
^pattern | Matches strings with pattern as the beginning sequence. |
Use of literal characters: It is used to specify the escape characters.
Literal Characters | Description |
---|---|
\0 | It denotes a NULL character. |
\t | It denotes a tab space. |
\n | It denotes a newline. |
\r | It denotes a carriage return. |
Use of metacharacters: It is used to specify only the type of characters.
Meta Characters | Description |
---|---|
\s | It denotes a blank or whitespace. |
\S | It denotes a non-blank or no space character. |
\d | It denotes a decimal digit character. |
\D | It denotes a non-digit character. |
\w | It denotes a word character (Any character sequence). |
\W | It denotes a non-word character. |
Example:
<script> var text1 = "Welcome to neveropen " ; var text2 = "The numbers are - 0, 1, 2, " + "3, 4, 5, 6, 7, 8, 9. The " + "special characters are - @," + " #, $, %, ^, &, *" ; // RegExp.match() and RegExp.replace() // have been used in the following // examples // Bracket notations // 1 var regexp = new RegExp( '[neveropen]' ); console.log(text1.match(regexp)); // 2 var regexp = new RegExp( '[^neveropen]' ); console.log(text1.match(regexp)); // 3 var regexp = new RegExp( '[0-9]' ); console.log(text2.match(regexp)); // Quantifiers // 4 var regexp = new RegExp( '[neveropen]*' ); console.log(text1.match(regexp)); // 5 var regexp = new RegExp( 's{2}' ); console.log(text1.match(regexp)); // Literal characters and meta characters // 6 var regexp1 = /(\w+)\s(\w+)\s(\w+)/ let newtext = text1.replace(regexp1, '$3 $2 $1' ); console.log(newtext); // 7 var regexp1 = /(\d+)/; let newtext1 = text2.replace(regexp1, 'number' ); console.log(newtext1); // 8 var regexp2 = /(\s+)/; console.log(text2.replace(regexp2, '\t' )); </script> |
Output:
Note: The RexExp doesn’t have methods and properties on its own. But it inherits some functions and properties from the prototype.