
Security News
CVE Volume Surges Past 48,000 in 2025 as WordPress Plugin Ecosystem Drives Growth
CVE disclosures hit a record 48,185 in 2025, driven largely by vulnerabilities in third-party WordPress plugins.
@isaacs/balanced-match
Advanced tools
A hybrid CJS/ESM TypeScript fork of balanced-match.
Match balanced string pairs, like { and } or <b> and </b>. Supports regular expressions as well!
Get the first matching pair of braces:
import { balanced } from '@isaacs/balanced-match'
console.log(balanced('{', '}', 'pre{in{nested}}post'))
console.log(balanced('{', '}', 'pre{first}between{second}post'))
console.log(balanced(/\s+\{\s+/, /\s+\}\s+/, 'pre { in{nest} } post'))
The matches are:
$ node example.js
{ start: 3, end: 14, pre: 'pre', body: 'in{nested}', post: 'post' }
{ start: 3,
end: 9,
pre: 'pre',
body: 'first',
post: 'between{second}post' }
{ start: 3, end: 17, pre: 'pre', body: 'in{nest}', post: 'post' }
For the first non-nested matching pair of a and b in str, return an
object with those keys:
aba and b not includeda and b not includeda and b not includedIf there's no match, undefined will be returned.
If the str contains more a than b / there are unmatched pairs, the first match that was closed will be used. For example, {{a} will match ['{', 'a', ''] and {a}} will match ['', 'a', '}'].
For the first non-nested matching pair of a and b in str, return an
array with indexes: [ <a index>, <b index> ].
If there's no match, undefined will be returned.
If the str contains more a than b / there are unmatched pairs, the first match that was closed will be used. For example, {{a} will match [ 1, 3 ] and {a}} will match [0, 2].
The 'balanced' package provides similar functionality to @isaacs/balanced-match, allowing you to find matching pairs of characters in a string. It offers a slightly different API and may have different performance characteristics.
The 'brace-expansion' package is used for expanding brace patterns in strings, which involves finding and processing matching braces. While its primary purpose is different, it involves similar operations of matching pairs of characters.
Parsimmon is a library for writing parsers in JavaScript. It can be used to parse and match patterns in strings, including matching pairs of characters. It is more comprehensive and complex compared to @isaacs/balanced-match, as it is designed for building parsers.
FAQs
Match balanced character pairs, like "{" and "}"
The npm package @isaacs/balanced-match receives a total of 15,442,546 weekly downloads. As such, @isaacs/balanced-match popularity was classified as popular.
We found that @isaacs/balanced-match demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Security News
CVE disclosures hit a record 48,185 in 2025, driven largely by vulnerabilities in third-party WordPress plugins.

Security News
Socket CEO Feross Aboukhadijeh joins Insecure Agents to discuss CVE remediation and why supply chain attacks require a different security approach.

Security News
Tailwind Labs laid off 75% of its engineering team after revenue dropped 80%, as LLMs redirect traffic away from documentation where developers discover paid products.