== Why is this an issue?

include::../description.adoc[]

=== Exceptions

To prevent generating some false-positives, literals having less than 10 characters are excluded as well as literals matching ``++/^\w*$/++``.
String literals inside import/export statements and JSX attributes are also ignored.
The same goes for statement-like string literals, e.g. `'use strict';`.

== How to fix it

include::../howtofix.adoc[]

=== Code examples

==== Noncompliant code example

With the default threshold of 3:

[source,javascript,diff-id=1,diff-type=noncompliant]
----
function run() {
    prepare("action_to_launch");  // Noncompliant - "action_to_launch" is duplicated 3 times
    execute("action_to_launch");
    release("action_to_launch");
}

function printInQuotes(a, b) {
  console.log("'" + a + "'" + b + "'");               // Compliant - literal "'" has less than 10 characters and is excluded
}
----

==== Compliant solution

[source,javascript,diff-id=1,diff-type=compliant]
----
var ACTION_1 = "action_to_launch";

function run() {
  prepare(ACTION_1);                               // Compliant
  execute(ACTION_1);
  release(ACTION_1);
}
----

ifdef::env-github,rspecator-view[]

'''
== Implementation Specification
(visible only on this page)

include::../message.adoc[]

include::../parameters.adoc[]

include::../highlighting.adoc[]

'''

endif::env-github,rspecator-view[]
