^ 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
const re1 = /(foo|bar)^/; // MISPLACED_ANCHOR_IN_REGEXP alarm because '^' is used instead of '$'.
// Example 2
const re2 = /$(foo|bar)/; // MISPLACED_ANCHOR_IN_REGEXP alarm '$' is not properly escaped.Compliant Code Example
View with noncompliant examples side by side// Example 1
const re1 = /(foo|bar)$/;
// Example 2
const re2 = /\$(foo|bar)/;Version
This rule was introduced in DeepScan 1.30.0.