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
—
Expanded bounds
Each OR group (separated by ||) must satisfy every bound inside it for the range to pass.
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.01.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
- Enter a semantic version, such as 1.4.2, in the Version field.
- Enter a range expression, such as ^1.2.0, in the Range field.
- The result updates live and shows PASS or FAIL.
- Expanded bounds show exactly what the range means in plain >= / < terms.
- 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