How to concatenate regex literals in JavaScript ?

Regex is a sequence of pattern that is used for matching with a pattern. While searching for data in a text, the search pattern is described for what we are searching for. It can be a single character or a more complex pattern. It can be used to perform all types of text searches. Regex has its own static and instance properties.

Syntax:

/pattern/modifiers

Example: A regular expression.

/gfg/g

Where,

  • gfg is a pattern (to be used in a search).
  • g is a modifier (modifies the search to be case-insensitive).

The concatenation of Regex in the programming world can be understood as combining text patterns
to obtain a new text pattern, such as “Hello” + “World” is /HelloWorld/. Whenever RegExp() is called, it creates a new RegExp object.



Example 1: This example creating an expression without actually using the Regex literal syntax. This allows you to make arbitrary string manipulation before it becomes a Regex object.

filter_none

edit
close

play_arrow

link
brightness_4
code

<!DOCTYPE html>
<html>
  
<head>
    <meta name="viewport" content=
        "width=device-width,initial-scale=1.0" />
  
    <title>
        Concatenation of Regex
    </title>
  
</head>
  
<body>
    <h3>The concatenation of Regex </h3>
    <hr>
      
    <script>
        function gfg() {
            var segment_part = " GeeksforGeeks |"
                + " A computer science portal for geeks";
  
            var pattern = new RegExp("GFG:" + 
                    /*comment here */
                    segment_part + 
                    /* that was defined just now */
                    "is a computer science portal");
  
            document.write(pattern);
        }
        gfg();
    </script>
</body>
  
</html>

chevron_right


Output:

Example 2: If you have two Regex literals, you can concatenate them using a technique where it removes duplicates, but keep the unique values in order, joining both the regex literals.

Example: /hello/y + / world/g would be /hello world/gy

filter_none

edit
close

play_arrow

link
brightness_4
code

<!DOCTYPE html>
<html>
  
<head>
    <meta name="viewport" content=
        "width=device-width, initial-scale=1.0"/>
  
    <title>
        Concatenation of Regex
    </title>
</head>
  
<body>
    <h3>Concatenation of Regex </h3>
    <hr>
    <script>
        function gfg() {
            var regex1 = /geeks/g;
            var regex2 = / for geeks/y;
            var flags = (regex1.flags + 
                regex2.flags).split("")
                    .sort().join("")
                      
                    .replace(/(.)(?=.*\1)/g, "");
            var regex3 = new RegExp(regex1.source
                        + regex2.source, flags);
                          
            document.write(regex3);
        }
        gfg();
    </script>
</body>
  
</html>

chevron_right


Output:

full-stack-img




My Personal Notes arrow_drop_up

Check out this Author's contributed articles.

If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.

Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.