^ and $ anchors should be placed properly in a regular expression

  • MISPLACED_ANCHOR_IN_REGEXP
  • Error
  • Medium
  • No tags

This rule applies when ^ and $ anchors are not placed properly in a regular expression.

^ and $ are special anchor characters that match the beginning and the end of input.

If ^ appears after matching some input characters, it will always fail to match. Similarly, nothing will be matched after the $ anchor.

Often this alarm occurs when the intention is matching the ^ or $ character itself. In that case, \^ or \$ should be used instead.

Note: Not applied when only one character exists around the ^ or $ because it is often used to intentionally construct an unmatchable pattern like /x^/ or /$x/.

Noncompliant Code Example

View with compliant examples side by side
// Example 1
var re1 = /(foo|bar)^/; // MISPLACED_ANCHOR_IN_REGEXP alarm because '^' is used instead of '$'.

// Example 2
var re2 = /$(foo|bar)/; // MISPLACED_ANCHOR_IN_REGEXP alarm '$' is not properly escaped.

Compliant Code Example

View with noncompliant examples side by side
// Example 1
var re1 = /(foo|bar)$/;

// Example 2
var re2 = /\$(foo|bar)/;

Version

This rule was introduced in DeepScan 1.30.0.

See