- Basic Use
- Find Many String
- How To Set Case Insensitive
- Find All Capital Letters
- How To Find Digits In A String
- Using Replace Function
- Using Search And Exec Function
- Use of test function
- Give Me Coffee
In JavaScript, a Regular Expression (RegEx) is an object that describes a sequence of characters used for defining a search pattern.
This post will go over some basic stuff about regular expressions. Regular Expressions enable us to easily find patterns in a string.
basic use - Let us find the word 'apple' in the string
const text = "This is an apple";
const regex = /apple/;
const result = text.match(regex)
console.log(result)
/**
output:
[
0: "apple"
groups: undefined
index: 11
input: "this is an apple"
length: 1
]
*/
Find Many String
We are going to use the previous example and were going to add a global option to the regex. This will create an array of all occurrences. Note, this is case sensitive.
Using match
const text = 'this is an apple and another apple or APPLe';
const regex = /apple/g;
console.log(text.match(regex));
/**
Output:
['apple', 'apple']
*/
Using matchAll
const text = 'this is an apple and another apple or APPLe';
const regex = /apple/g;
console.log([...text.match(regex)]);
/**
Output:
[
0: ['apple', index: 11, input: 'this is an apple and another apple or APPLe', groups: undefined]
1: ['apple', index: 29, input: 'this is an apple and another apple or APPLe', groups: undefined]
]
*/
How to Set Case Insensitive
We are going to add the i
option to the modifier to make the pattern case insensitive.
const text = 'this is an apple and another apple or APPLe';
const regex = /apple/gi;
console.log([...text.matchAll(regex)])
/**
[
0: ['apple', index: 11, input: 'this is an apple and another apple or APPLe', groups: undefined]
1: ['apple', index: 29, input: 'this is an apple and another apple or APPLe', groups: undefined]
2: ['APPLe', index: 38, input: 'this is an apple and another apple or APPLe', groups: undefined]
]
*/
Find All Capital Letters
const text = 'Make Arnold Reverse the Video about Eternal Latency';
const regex = /[A-Z]/g; // we still need to use the global option
console.log(text.match(regex))
/**
Output:
['M', 'A', 'R', 'V', 'E', 'L']
*/
We can also set our regex to ignore the letter M
.
const text = 'Make Arnold Reverse the Video about Eternal Latency';
const regex = /(?![M])[A-Z]/g;
console.log(text.match(regex));
/**
Output:
['A', 'R', 'V', 'E', 'L']
*/
How To Find Digits in a string
const text = 'We have a sugar of 200g, a lemon of 1kg and 1000kg of water.';
const regex = /\d/g; // using \d to match any digit
console.log(text.match(regex));
/**
Output:
['2', '0', '0', '1', '1', '0', '0', '0']
*/
Get FULL numbers by using the +
option.
const text = 'We have a sugar of 200g, a lemon of 1kg and 1000kg of water.';
const regex = /\d+/g; // using \d+ find full number
console.log(text.match(regex));
/**
Output:
['200', '1', '1000']
*/
Using Replace
Function
We're going to find and replace an item. In this example, we're going to find capital letters and replace them with @.
const text = 'I have 1 item.';
const regex = /\d/g; // using \d+ find full number
console.log(text.replace(regex, '@'));
/**
Output:
I have @ item.
*/
Other samples:
// replace all capital letters
const result = "This is A New Item".replace(/[A-Z]/g, '@');
console.log(result); // @his is @ @ew @tem
// replace full numbers
const result = "This is A 200kg New Item with 0% capacity".replace(/\d+/g, '@');
console.log(result); // This is A @kg New Item with @% capacity
// replace all letter a
const result = "This is A 200kg New Item with 0% capacity".replace(/[a]/gi, '@');
console.log(result); // This is @ 200kg New Item with 0% c@p@city
Using Search and Exec function
Search will give us the index
position of the first match.
const result = "We are the World".search(/the/g);
console.log(result); // 7
Exec on the other hand is like a match but with the purpose to be used in a loop. returns an array of captures or null.
const text = "We are the people of the world";
const regex = /the/g;
let arr;
while ((arr = regex.exec(text)) !== null) {
console.log(`Found ${arr[0]} in index ${arr.index}.`)
}
/**
Output:
Found the in index 7.
Found the in index 21.
*/
Use of test function
The test
Returns a Boolean value that indicates whether or not a pattern exists in a searched string.
example validating an email address(This is a complicated regex but the main point here is how to use the test function):
const regex = /^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[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,}))$/;
console.log(regex.test('brojenuel@123.890')); // false
console.log(regex.test('jenuelganawed936@gmail.com')); // true
other example:
const text = "This is just a text";
console.log(/a/.test(text)); // true - because a exist on the text
console.log(/\d/.test(text)); // false - because no digits found
console.log(/[A-Z]/.test(text)); // true - because theres a capital letter
console.log(/A/i.test(text)); // true - because letter a/A exist on the text
Give Me Coffee
I create a post like this.
If you like to give me money, I will gladly accept 😁👍.
check out my latest personal project:
Believers Sword App
Follow me:
Instgram
Facebook
Youtube
Top comments (0)