Kali Linux – Wireless Attacks Hacking WiFi passwords using Kali Linux has been a topic of interest for many individuals seeking to test the security of their own networks or…
JavaScript Regular Expressions (Regex) – Beginner to Expert

Regular Expressions(Regex) – JavaScript – Beginner to Expert
When I started teaching regular expression (regex or regexp), there were no sufficient resources! Being in this industry for almost 23 years now, and after exploring an ocean of digital content, I must say – Regex needs to be explained in a more simplified way.
Course not found.
Let’s discuss and understand a concept which is very important in the present scenario.
I’ve seen students and even working professionals getting confused with the basic concepts of Regex. Having said that, I must also mention that Regular expression (regex) can be overwhelming sometimes. It is imperative for you to grasp the core concepts thoroughly at your own pace.
Course will help you to clear your concepts by understanding the fundamentals the way they should be understood. The course will guide and help you in a step by step way to apply regex techniques and reach the desired solution.
Course not found.
I have used more than 165+ coding examples to explain the concepts and included advanced level interview questions asked by companies. I will teach from scratch and bring you up to the level of an expert – Guaranteed!
What are javaScript Regular Expressions?
Regular expressions allow you to check a string of characters like an e-mail address or password for patterns, to see so if they match the pattern defined by that regular expression and produce actionable information
Introduction to regular expressions in JavaScript
A regular expression is a string that describes a pattern e.g., email addresses and phone numbers.
In JavaScript, regular expressions are objects. JavaScript provides the built-in RegExp
type that allows you to work with regular expressions effectively.
Regular expressions are useful for searching and replacing strings that match a pattern. They have many useful applications.
For example, you can use regular expressions to extract useful information in web scraping like product prices. Or you can use regular expressions to validate form fields like email addresses and phone numbers.
Creating a Regular Expression
There are two ways to create a regular expression in Javascript Regular Expression . It can be either created with RegExp constructor, or by using forward slashes ( / ) to enclose the pattern.
Regular Expression Constructor:
Syntax: new RegExp(pattern[, flags])
Example:
var regexConst = new RegExp('abc');
Course not found.
javaScript Regular Expression Literal:
Syntax: /pattern/flags
Example:
var regexLiteral = /abc/;
- Here the flags are optional, I will explain these later in this article.
There might also be cases where you want to create regular expressions dynamically, in which case regex literal won’t work, so you have to use a regular expression constructor.
No matter which method you choose, the result is going to be a regex object. Both regex objects will have same methods and properties attached to them.
Since forward slashes are used to enclose patterns in the above example, you have to escape the forward slash ( / )
with a backslash ( \ )
if you want to use it as a part of the regex.
javaScript Regular Expressions Methods
There are mainly two methods for testing regular expressions.
RegExp.prototype.test()
This method is used to test whether a match has been found or not. It accepts a string which we have to test against regular expression and returns true
or false
depending upon if the match is found or not.
For example:
var regex = /hello/;var str = 'hello world';var result = regex.test(str);console.log(result);// returns true
RegExp.prototype.exec()
This method returns an array containing all the matched groups. It accepts a string that we have to test against a regular expression.
For example:
var regex = /hello/;var str = 'hello world';var result = regex.exec(str);console.log(result);// returns [ 'hello', index: 0, input: 'hello world', groups: undefined ]// 'hello' -> is the matched pattern.// index: -> Is where the regular expression starts.// input: -> Is the actual string passed.
We are going to use the test()
method in this article.
Simple Regex Patterns
It is the most basic pattern, which simply matches the literal text with the test string. For example:
var regex = /hello/;console.log(regex.test('hello world'));// true
Course not found.
Special Characters In javaScript Regular Expressions
Up until now we’ve created simple javaScript Regular Expressions patterns. Now, let’s tap into the full power of regular expressions when handling more complex cases.
For example, instead of matching a specific email address let’s say we’d like to match a number of email addresses. That’s where special characters come into play.
There are special symbols and characters that you have to memorize in order to fully understand the regular expressions.
Flags:
Regular expressions have five optional flags or modifiers. Let’s discuss the two most important flags:
- — Global search, don’t return after the first match
- — Case-insensitive search
You can also combine the flags in a single regular expression. Note that their order doesn’t have any effect on the result.
Let’s look at some code examples:
Regular Expression Literal — Syntax /pattern/flags
var regexGlobal = /abc/g;console.log(regexGlobal.test('abc abc'));// it will match all the occurence of 'abc', so it won't return // after first match.var regexInsensitive = /abc/i;console.log(regexInsensitive.test('Abc'));// returns true, because the case of string characters don't matter // in case-insensitive search.
Regular Expression Constructor — Syntax new RegExp('pattern', 'flags')
var regexGlobal = new RegExp('abc','g')console.log(regexGlobal.test('abc abc'));// it will match all the occurence of 'abc', so it won't return // after first match.var regexInsensitive = new RegExp('abc','i')console.log(regexInsensitive.test('Abc'));// returns true, because the case of string characters don't matter // in case-insensitive search.
Character groups:
Character set [xyz] — A character set is a way to match different characters in a single position, it matches any single character in the string from characters present inside the brackets. For example:
var regex = /[bt]ear/;console.log(regex.test('tear'));// returns trueconsole.log(regex.test('bear'));// return trueconsole.log(regex.test('fear'));// return false
Note — All the special characters except for caret (^)
(Which has entirely different meaning inside the character set) lose their special meaning inside the character set.
Negated character set [^xyz] — It matches anything that is not enclosed in the brackets. For example:
var regex = /[^bt]ear/;console.log(regex.test('tear'));// returns falseconsole.log(regex.test('bear'));// return falseconsole.log(regex.test('fear'));// return true
Ranges [a-z] — Suppose we want to match all of the letters of an alphabet in a single position, we could write all the letters inside the brackets, but there is an easier way and that is ranges. For example: [a-h] will match all the letters from a to h. Ranges can also be digits like [0-9] or capital letters like [A-Z].
var regex = /[a-z]ear/;console.log(regex.test('fear'));// returns trueconsole.log(regex.test('tear'));// returns true
Meta-characters — Meta-characters are characters with a special meaning. There are many meta character but I am going to cover the most important ones here.
- — Match any digit character ( same as
[0-9]
). - — Match any word character. A word character is any letter, digit, and underscore. (Same as
[a-zA-Z0–9_]
) i.e alphanumeric character. - — Match a whitespace character (spaces, tabs etc).
- — Match a tab character only.
- — Find a match at beginning or ending of a word. Also known as word boundary.
- — (period) Matches any character except for newline.
- — Match any non digit character (same as
[^0–9]
). - — Match any non word character (Same as
[^a-zA-Z0–9_]
). - — Match a non whitespace character.
Quantifiers: — Quantifiers are symbols that have a special meaning in a regular expression.
Course not found.
- — Matches the preceding expression 1 or more times.
var regex = /\d+/;console.log(regex.test('8'));// trueconsole.log(regex.test('88899'));// trueconsole.log(regex.test('8888845'));// true
- —Matches the preceding expression 0 or more times.
var regex = /go*d/;console.log(regex.test('gd'));// trueconsole.log(regex.test('god'));// trueconsole.log(regex.test('good'));// trueconsole.log(regex.test('goood'));// true
- — Matches the preceding expression 0 or 1 time, that is preceding pattern is optional.
var regex = /goo?d/;console.log(regex.test('god'));// trueconsole.log(regex.test('good'));// trueconsole.log(regex.test('goood'));// false
- — Matches the beginning of the string, the regular expression that follows it should be at the start of the test string. i.e the caret (^) matches the start of string.
var regex = /^g/;console.log(regex.test('good'));// trueconsole.log(regex.test('bad'));// falseconsole.log(regex.test('tag'));// false
- — Matches the end of the string, that is the regular expression that precedes it should be at the end of the test string. The dollar ($) sign matches the end of the string.
var regex = /.com$/;console.log(regex.test('test@testmail.com'));// trueconsole.log(regex.test('test@testmail'));// false
- — Matches exactly N occurrences of the preceding regular expression.
var regex = /go{2}d/;console.log(regex.test('good'));// trueconsole.log(regex.test('god'));// false
- — Matches at least N occurrences of the preceding regular expression.
var regex = /go{2,}d/;console.log(regex.test('good'));// trueconsole.log(regex.test('goood'));// trueconsole.log(regex.test('gooood'));// true
- — Matches at least N occurrences and at most M occurrences of the preceding regular expression (where M > N).
var regex = /go{1,2}d/;console.log(regex.test('god'));// trueconsole.log(regex.test('good'));// trueconsole.log(regex.test('goood'));// false
Alternation X|Y — Matches either X or Y. For example:
var regex = /(green|red) apple/;console.log(regex.test('green apple'));// trueconsole.log(regex.test('red apple'));// trueconsole.log(regex.test('blue apple'));// false
Note — If you want to use any special character as a part of the expression, say for example you want to match literal +
or .
, then you have to escape them with backslash ( \ )
.
For example:
var regex = /a+b/; // This won't workvar regex = /a\+b/; // This will workconsole.log(regex.test('a+b')); // true
Advanced
(x) — Matches x and remembers the match. These are called capturing groups. This is also used to create sub expressions within a regular expression. For example :-
var regex = /(foo)bar\1/;console.log(regex.test('foobarfoo'));// trueconsole.log(regex.test('foobar'));// false
\1
remembers and uses that match from first subexpression within parentheses.
(?:x) — Matches x and does not remember the match. These are called non capturing groups. Here \1
won’t work, it will match the literal \1
.
var regex = /(?:foo)bar\1/;console.log(regex.test('foobarfoo'));// falseconsole.log(regex.test('foobar'));// falseconsole.log(regex.test('foobar\1'));// true
x(?=y) — Matches x only if x is followed by y. Also called positive look ahead. For example:
var regex = /Red(?=Apple)/;console.log(regex.test('RedApple'));// true
In the above example, match will occur only if Red
is followed by Apple
.
Course not found.
Practicing Regex:
Let’s practice some of the concepts that we have learned above.
var regex = /^\d{10}$/;console.log(regex.test('9995484545'));// true
Let’s break that down and see what’s going on up there.
- If we want to enforce that the match must span the whole string, we can add the quantifiers
^
and$
. The caret^
matches the start of the input string, whereas the dollar sign$
matches the end. So it would not match if string contain more than 10 digits. \d
matches any digit character.{10}
matches the previous expression, in this case\d
exactly 10 times. So if the test string contains less than or more than 10 digits, the result will be false.
DD-MM-YYYY
orDD-MM-YY
var regex = /^(\d{1,2}-){2}\d{2}(\d{2})?$/;console.log(regex.test('01-01-1990'));// trueconsole.log(regex.test('01-01-90'));// trueconsole.log(regex.test('01-01-190'));// false
Let’s break that down and see what’s going on up there.
- Again, we have wrapped the entire regular expression inside
^
and$
, so that the match spans entire string. (
start of first subexpression.\d{1,2}
matches at least 1 digit and at most 2 digits.-
matches the literal hyphen character.)
end of first subexpression.{2}
match the first subexpression exactly two times.\d{2}
matches exactly two digits.(\d{2})?
matches exactly two digits. But it’s optional, so either year contains 2 digits or 4 digits.
The expression should match any string with a format like abc.def.ghi.jkl
where each variable a, b, c, d, e, f, g, h, i, j, k, l
can be any character except new line.
var regex = /^(.{3}\.){3}.{3}$/;console.log(regex.test('123.456.abc.def'));// trueconsole.log(regex.test('1243.446.abc.def'));// falseconsole.log(regex.test('abc.def.ghi.jkl'));// true
Let’s break that down and see what’s going on up there.
- We have wrapped entire regular expression inside
^
and$
, so that the match spans entire string. (
start of first sub expression.{3}
matches any character except new line for exactly 3 times.\.
matches the literal.
period)
end of first sub expression{3}
matches the first sub expression exactly 3 times..{3}
matches any character except new line for exactly 3 times.
It is best if you work in the JavaScript language as this course is built using JS.
However, even if you work in any other language, you can still use this course to learn about regular expressions as the same regex pattern applies to many programming languages.
Connect with me if you have any questions/concerns/doubts and I’ll be happy to help you become better at programming. Good luck!
===========================================================================
============================================================================
azure blockchain comptia A+ cybersecurity data science django flask front end web development google it support google it support certificate google it support professional certificate google it support professional certificate cost google it support professional certificate worth it google it support salary It Certification java javascript ketan kk machine learning algorithms machine learning course machine learning definition machine learning engineer machine learning interview questions machine learning jobs machine learning python machine learning vs deep learning mongoDB Network & Security nodejs Operating Systems Other It & Software price elasticity calculator python rest api ruby science of well being science of well being yale Udemy courses university of colorado boulder university of colorado boulder ranking university of colorado colorado springs university of colorado denver university of colorado hospital web development
Which is Better to Learn Machine Learning: C++, Python, or R?
ML is the investigation of PC calculations that learn without being unequivocally modified by people.
May 16, 2023 / Read More
10 must use APIs for Your Next Python Project with code example for each
Here are 10 killer APIs along with code examples for each:
May 16, 2023 / Read More
How to Write an Agile Project Charter?
An Agile project charter is a strategic leadership document that clarifies an Agile team’s core objective, targets, benefits, and operati...
May 15, 2023 / Read More
Project Management Plans in Project Environment
A project management plan is a detailed list of the deliverables, factors affecting the quality of the project, timelines, budget, etc.
May 14, 2023 / Read More
Two Major Documents of Project Management — Project Charter and Project Scope
The project charter and the project scope are two important papers that makeup project management.
May 14, 2023 / Read More
How to set background image in CSS using jQuery?
To set the background image using jQuery, use the jQuery css() method.
May 12, 2023 / Read More
How to apply multiple CSS properties using jQuery?
Apply multiple CSS properties using a single JQuery method CSS( {key1:val1, key2:val2....). You can apply as many properties as you like ...
May 12, 2023 / Read More
How to switch between multiple CSS stylesheets using JavaScript?
In this tutorial, we will learn to switch between multiple CSS stylesheets using JavaScript.
May 12, 2023 / Read More