The $ symbol is one of the most commonly used symbols in RegEx. It is used to match the end of a string. In other words, you can call it "end of line anchor", since it anchors a pattern to the end of the line.
In this article, I’ll show you exactly what the dollar sign ($) does in RegEx and how to use it.
What We'll Cover
- What is the
$Symbol in RegEx? - How to Match the Dollar Sign
$in RegEx - How to Use the Dollar Sign
$in a JavaScript Regex - Conclusion
What is the $ Symbol in RegEx?
The $ is one of the RegEx characters known as metacharacters. It matches the end of a string and would only return a match when the text or string it is attached to is at the end of a line.
This is useful in cases where you want to ensure that a string ends with a certain pattern or character. You can use the $ metacharacter with other metacharacters to create complex patterns that match specific strings or patterns within strings.
In the example below, you can see that the pattern is freecodecamp$ with the i, g, and m flags. i means case insensitive, g means global, and m means multiline.

You can also see that only the word freeCoceCamp at the end of a line is returned as matches. That’s the power of the $ metacharacter.
How to Match the Dollar Sign $ in RegEx
Since the dollar sign $ is a metacharacter, how would you match it in a string? You have to escape it with a backslash! That’s how you match all metacharacters in RegEx.

How to Use the Dollar Sign $ in a JavaScript Regex
The dollar sign $ metacharacter works fine in JavaScript. In the code snippet below, I test the dollar sign as a metacharacter and as a string:
const text1 =
"At freeCodeCamp, we don't ask you to pay to learn coding, because freeCodeCamp is a charity";
const text2 =
'You can also hang out with friends on a forum developed by freeCodeCamp';
const text3 = 'The sign of the naira is ₦ and dollar sign is $.';
const regex1 = /freecodecamp$/gim;
const regex2 = /\$/g;
// test the dollar sign as a metacharacter
console.log(regex1.test(text1)); //false
console.log(regex2.test(text2)); //true
// test the dollar sign as a string
console.log(regex2.test(text3)); //true
You can see that when I tested the string At freeCodeCamp, we don't ask you to pay to learn coding, because freeCodeCamp is a charity with the regex /freecodecamp$/gim;, it returned false because there’s no freeCodeCamp at the end of a line. But when I tested You can also hang out with friends on a forum developed by freeCodeCamp' with the same regex, it returned true because there’s a freeCodeCamp at the end of a line.
Also, you can see that the string 'The sign of the naira is ₦ and dollar sign is $.' returned true when I tested it with the regex /\$/g.
You can also use the exec() method instead of test() to see the exact matches of your regex:
const text1 =
"At freeCodeCamp, we don't ask you to pay to learn coding, because freeCodeCamp is a charity";
const text2 =
'You can also hang out with friends on a forum developed by freeCodeCamp';
const text3 = 'The sign of the naira is ₦ and dollar sign is $.';
const regex1 = /freecodecamp$/gim;
const regex2 = /\$/g;
// test the dollar sign as a metacharacter
console.log(regex1.exec(text1));
console.log(regex1.exec(text2));
// test the dollar sign as a string
console.log(regex2.exec(text3));
Output:
null
[
'freeCodeCamp',
index: 59,
input: 'You can also hang out with friends on a forum developed by freeCodeCamp',
groups: undefined
]
[
'$',
index: 46,
input: 'The sign of the naira is ₦ and dollar sign is $.',
groups: undefined
]
The first console log returned null because there was no match. The second returned the match, and the third returned the match too.
Conclusion
You’ve seen how the dollar ($) metacharacter matches the end of a line in RegEx and in JavaScript.
You can combine the dollar metacharacter with several other metacharacters to create a complex pattern. For instance, since caret (^) matches the start of a line, you can combine it with the dollar metacharacter to match a particular word only.
Happy coding!