I have a very long regular expression, which I wish to split into multiple lines in my JavaScript code to keep each line length 80 characters according to JSLint rules. It’s just better for reading, I think.
Here’s pattern sample:
var pattern = /^(([^<>()[\]\\.,;:\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,}))$/;
[Edit 2022/08] Created a small github repository to create regular expressions with spaces, comments and templating.
You could convert it to a string and create the expression by calling
new RegExp():Notes:
when converting the expression literal to a string you need to escape all backslashes as backslashes are consumed when evaluating a string literal. (See Kayo’s comment for more detail.)
RegExpaccepts modifiers as a second parameter/regex/g=>new RegExp('regex', 'g')[Addition ES20xx (tagged template)]
In ES20xx you can use tagged templates. See the snippet.
Note:
\s,\s+,\s{1,x},\t,\netc).