45 lines
1.4 KiB
Plaintext

== Why is this an issue?
Character classes in regular expressions will match any of the characters enclosed in the square brackets (`[abc]` will match `a`, `b` or `c`).
You can specify a range of characters using a hyphen (`-`). If the hyphen appears as the first or last character, it will be matched as a literal hyphen.
An empty character class (`[]`) will not match any character because the set of matching characters is empty. So the regular expression will not work as you intended.
[source,javascript,diff-id=1,diff-type=noncompliant]
----
/^foo[]/.test(str); // Noncompliant: always returns "false"
----
Use a non-empty character class or a different regular expression pattern that achieves the desired result.
[source,javascript,diff-id=1,diff-type=compliant]
----
/^foo/.test(str);
----
== Resources
=== Documentation
* MDN web docs - https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_expressions/Character_classes[Character classes]
* MDN web docs - https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_expressions[Regular expressions]
ifdef::env-github,rspecator-view[]
'''
== Implementation Specification
(visible only on this page)
=== Message
Rework this empty character class that doesn't match anything.
'''
== Comments And Links
(visible only on this page)
include::../comments-and-links.adoc[]
endif::env-github,rspecator-view[]