๐Ÿ”’ Runs in your browser โ€” nothing is uploadedโœ“ Free, no signup

Semver Range Checker

Test which versions satisfy a semver range like ^1.2.3, ~1.2.3 or >=1.4 <2, read it in plain English, compare two versions, or see the next version for each bump.

Range

Matches versions that are

  • at least 1.2.3 and below 2.0.0

Equivalent: >=1.2.3 <2.0.0-0

Lowest matching version: 1.2.3

Pre-release versions (like 1.9.9-beta.1) only match when the range itself names a pre-release of the same major.minor.patch.

Versions to test

  • no match1.2.2
  • matches1.2.3
  • matches1.5.0highest match
  • no match1.9.9-beta.1
  • no match2.0.0

When should you use the Semver Checker?

  • Understanding which versions npm install will pick for a dependency
  • Choosing between ^ and ~ in package.json
  • Working out the next release number

How to use the Semver Checker

  1. 1

    Enter a range

    Anything npm accepts: ^1.2.3, ~1.2.3, 1.x, >=1.4.0 <2.0.0, 1.2.3 - 1.4.0 or ranges joined with ||.

  2. 2

    Add versions

    List versions to test, one per line.

  3. 3

    Read the result

    Each version is marked as matching or not, and the highest match is highlighted.

  4. 4

    Compare or bump

    Use the other tabs to compare two versions or see the next major, minor and patch.

Examples

Caret range

Range

^1.2.3 against 1.2.2, 1.5.0, 2.0.0

Result

Matches: at least 1.2.3 and below 2.0.0
1.2.2  no match
1.5.0  matches
2.0.0  no match

Common errors and how to fix them

A pre-release version doesn't match
Pre-releases like 2.0.0-beta.1 only match ranges that mention a pre-release of the same version, such as >=2.0.0-beta.0.
^0.2.3 doesn't allow 0.3.0
For 0.x versions, ^ only allows patch updates because minor versions may break things before 1.0.
Related tools:ย Text Diff ยท JSON Compare ยท Regex Tester

More from Generators & Testers

Free tools that run in your browser โ€” no signup, nothing uploaded.

Semver Checker FAQ

^1.2.3 allows anything below 2.0.0 (minor and patch updates). ~1.2.3 allows only patch updates, below 1.3.0.

A MAJOR.MINOR.PATCH scheme: increase major for breaking changes, minor for new features and patch for bug fixes.

Each part is compared as a number, not text โ€” 10 is larger than 9.

node-semver, the same library npm uses, so the results match npm install.

It adds or increments a pre-release number: 1.4.2 becomes 1.4.3-beta.0 with the beta tag, then 1.4.3-beta.1.

No. Everything runs in your browser, so your data never leaves your device.