SemVer Checker & Range Calculator

Validate SemVer 2.0.0 versions, test npm-style range expressions (^, ~, >=, A - B, ||), sort candidate versions, and preview version bumps.

Private by architecture: All processing is 100% client-side memory. Your data never leaves this browser tab.
Candidate versions (one per line)
7 versionsSemVer 2.0.0
Range evaluation, sorted versions & bumps
Expanded range
-
Next bumps (first valid)
-
Version Valid Matches range Details
Ready

About This Tool

Validates Semantic Versioning 2.0.0 strings, expands and evaluates npm-style version ranges (^, ~, >=, <=, >, <, =, A - B hyphen ranges, x/* wildcards, space-separated AND sets, and || OR unions), sorts lists of versions in official SemVer precedence order, and previews major, minor, patch, and prerelease bumps.

Built from scratch on the SemVer 2.0.0 specification without external dependencies, running entirely inside your browser.

Key Features

  • Range expansion & evaluation: See the exact primitive comparator expansion (for example, ^1.2.3 expands to >=1.2.3 <2.0.0) and test multiple versions against the range at once.
  • Strict SemVer 2.0.0 validation: Flags leading zeros in numeric identifiers, malformed prerelease tags, or missing version core segments.
  • Precedence-aware sorting: Sorts version lists according to SemVer 2.0.0 section 11 rules (1.0.0-alpha < 1.0.0-alpha.1 < 1.0.0-beta.2 < 1.0.0-beta.11 < 1.0.0).
  • Next-version bumper: Computes the next major, minor, patch, and prerelease versions for the primary version.

Frequently Asked Questions

What is the difference between caret (^1.2.3) and tilde (~1.2.3) ranges?
Caret (^) allows changes that do not modify the left-most non-zero digit: ^1.2.3 expands to >=1.2.3 <2.0.0, whereas ^0.2.3 expands to >=0.2.3 <0.3.0. Tilde (~) allows patch-level changes when a minor version is specified: ~1.2.3 expands to >=1.2.3 <1.3.0.
Why does 1.0.0-alpha.1 not match >=1.0.0-0 or ^1.0.0 by default?
Under npm SemVer range rules, prerelease versions only match a comparator set if at least one comparator in that set explicitly specifies a prerelease tag on the same major.minor.patch tuple (or if "Include prerelease versions" is enabled).
Does build metadata (+20130313) affect version comparison?
No. Per SemVer 2.0.0 section 10, build metadata is preserved when parsing and normalizing a version, but ignored when determining version precedence.