SemVer Range Tester

Enter a version and a range expression to check if the version satisfies the range, with the range broken down into plain bounds.

Version & Range

Try a preset

Supported syntax

  • ^1.2.3 — compatible with 1.2.3 up to (not including) 2.0.0
  • ~1.2.3 — patch updates only, up to (not including) 1.3.0
  • 1.2.x, * — wildcard segments
  • >=1.0.0 <2.0.0 — space-separated bounds (AND)
  • 1.2.3 - 2.3.4 — inclusive hyphen range
  • ^1.0.0 || ^2.0.0 — either range (OR)

Summary

Enter a version and a range expression to check if the version satisfies the range, with the range broken down into plain bounds.

How it works

  1. Enter a semantic version, such as 1.4.2, in the Version field.
  2. Enter a range expression, such as ^1.2.0, in the Range field.
  3. The result updates live and shows PASS or FAIL.
  4. Expanded bounds show exactly what the range means in plain >= / < terms.
  5. Try a preset chip to see common caret, tilde, and hyphen ranges in action.

Use cases

  • Check if a dependency version in package.json satisfies a declared range before upgrading.
  • Debug why npm install picked an unexpected package version.
  • Learn the difference between caret (^) and tilde (~) ranges with real examples.
  • Verify a hyphen range like 1.2.3 - 2.3.4 covers the versions you expect.
  • Validate a version range before publishing a library with a peerDependencies constraint.
  • Teach semantic versioning rules to a teammate with instant visual feedback.

Frequently Asked Questions

Last updated: 2026-07-24 · Reviewed by Nham Vu