Semver Range Calculator

← All tools

Type a version and an npm range. The page says whether the version satisfies the range, and it expands the range the way the semver package does.

The check runs in the browser. Nothing is uploaded. The version and the range are stored in the URL. The list is not.

The list stops at 1,000 lines and 200,000 characters. A blank line is skipped.

Not checked

Result

About this tool

The check calls the semver package, the same one npm uses. This page was checked against semver 7.8.6 on November 4, 2026. Loose mode is off. includePrerelease is off. A leading lowercase v is accepted and then stripped. An uppercase V is invalid. Build metadata is ignored, so 1.2.3+build is compared as 1.2.3.

A blank range box means you have not typed a range. The range * means any version, and the package also treats an empty range string that way. A space between comparators means AND. Two bars mean OR. A comma is not a separator. An invalid version in the list is reported as invalid. It is not counted as a miss. A leading zero, such as 01.2.3, is invalid.

The expanded range is the package's normalized comparator string. An upper bound that ends in -0 is the lowest prerelease of that version, so that release and its prereleases are excluded. A prerelease version matches a comparator set only when some comparator in that set has a prerelease on the same major.minor.patch. ^1.2.3 does not match 1.2.3-beta. ^1.2.3-beta matches 1.2.3-beta.2 and 1.2.4, and it does not match 1.2.4-beta.

Read more

Free books, courses, and software

Get my programming books, course editions, and complete software.

Get the download library →