32 lines
1.1 KiB
Plaintext
32 lines
1.1 KiB
Plaintext
== Why is this an issue?
|
|
|
|
Using regular expression literals is recommended over using the `RegExp` constructor calls if the pattern is a literal. Regular expression literals are shorter, more readable, and do not need to be escaped like string literals. They can also be more performant because regular expression literals are compiled only once when the script is loaded.
|
|
|
|
[source,javascript,diff-id=1,diff-type=noncompliant]
|
|
----
|
|
new RegExp(/foo/);
|
|
new RegExp('bar');
|
|
new RegExp('baz', 'i');
|
|
new RegExp("\\d+");
|
|
new RegExp(`qux|quuz`);
|
|
----
|
|
|
|
Using the `RegExp` constructor is suitable when the pattern is computed dynamically, for example, when the user provides it. Otherwise, you should prefer the more concise syntax of regular expression literals.
|
|
|
|
[source,javascript,diff-id=1,diff-type=compliant]
|
|
----
|
|
/foo/;
|
|
/bar/;
|
|
/baz/i;
|
|
/\d+/;
|
|
/qux|quuz/;
|
|
new RegExp(`Dear ${title},`);
|
|
----
|
|
|
|
== Resources
|
|
|
|
=== Documentation
|
|
|
|
* MDN web docs - https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_expressions[Regular expressions]
|
|
* MDN web docs - https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/RegExp[``++RegExp++``]
|