HiveBrain v1.2.0
Get Started
← Back to all entries
snippetjavascriptTip

6 JavaScript Regular Expression features you can use today

Submitted by: @import:30-seconds-of-code··
0
Viewed 0 times
todayjavascriptexpressionyouusecanregularfeatures

Problem

Regular expressions, while very powerful, are notoriously hard to master. Here are 6 useful features that can help you start using them in your JavaScript projects:
Capturing groups allow you to get specific parts of the matched string, simply by wrapping part of the regular expression in parentheses (...):
Non-capturing groups are used for matching something without capturing it, like an either/or matching group that you do not really need. They are defined similarly to capturing groups, but prefixed with ?::
Named capturing groups allow you to name a capturing group, by prefixing it with <name>:
Backreferences help you write shorter regular expressions, by repeating an existing capturing group, using \1, \2 etc. Similarly, you can also repeat named capturing groups using \k<name>:

Solution

const str = 'JavaScript is a programming language';
/(JavaScript) is a (.*)/.exec(str);
/*
  [
    0: 'JavaScript is a programming language',
    1: 'JavaScript',
    2: 'programming language'
  ]
*/


Non-capturing groups are used for matching something without capturing it, like an either/or matching group that you do not really need. They are defined similarly to capturing groups, but prefixed with ?::
Named capturing groups allow you to name a capturing group, by prefixing it with <name>:
Backreferences help you write shorter regular expressions, by repeating an existing capturing group, using \1, \2 etc. Similarly, you can also repeat named capturing groups using \k<name>:
Lookaheads allow you to check if something is followed by a certain pattern, without actually matching it. You can create positive lookaheads using ?= and negative lookaheads using ?!:
Finally, you can match unicode characters, using /p{...} and the /u flag. Examples include, but are not limited to {Emoji}, {Math_Symbols} and {Script=Greek}:

Code Snippets

const str = 'JavaScript is a programming language';
/(JavaScript) is a (.*)/.exec(str);
/*
  [
    0: 'JavaScript is a programming language',
    1: 'JavaScript',
    2: 'programming language'
  ]
*/
const str = 'JavaScript is a programming language';
/(?:JavaScript|Python) is a (.+)/.exec(str);
/*
  [
    0: 'JavaScript is a programming language',
    1: 'programming language'
  ]
*/
const str = 'JavaScript is a programming language';
/(?<subject>.+) is a (?<description>.+)/.exec(str);
/*
  [
    0: 'JavaScript is a programming language',
    1: 'JavaScript',
    2: 'programming language',
    groups: {
      subject: 'JavaScript,
      description: 'programming language'
    }
  ]
*/

Context

From 30-seconds-of-code: 6-regexp-tricks

Revisions (0)

No revisions yet.