Does 1.4.2 satisfy ^1.2.0?
Yes. ^1.2.0 expands to >=1.2.0 <2.0.0, and 1.4.2 falls within that interval under SemVer 2.0 / npm rules.
Paste a version and npm-style range to check compatibility in your browser—instant pass/fail, range expansion for ^ and ~, and failed bound labels. Validate format on Semver Tester first.
Loading tool…
A semver checker tests whether a version string satisfies an npm-style range expression (^, ~, >=, <, compound ranges) following SemVer 2.0 rules—this tool runs locally in your browser with range expansion explanations.
When you declare a dependency like `"lodash": "^4.17.0"` in package.json, npm resolves versions that satisfy that range—not every possible version string. A semver checker answers: **does version X satisfy range Y?**
This page supports caret (^), tilde (~), comparison operators (>=, <=, >, <, =), exact versions, and compound AND ranges such as `>=1.0.0 <2.0.0`. Results include human-readable reasons and how ^ / ~ ranges expand.
This is **range compatibility**, not format validation. If a version string is malformed (leading zeros, missing patch), validate it on Semver Tester first. For bumping or comparing versions, use Semver Calculator.
Concise answers for common searches — definitions, steps, and comparisons.
Yes. ^1.2.0 expands to >=1.2.0 <2.0.0, and 1.4.2 falls within that interval under SemVer 2.0 / npm rules.
Yes. Range checks run locally in your browser; version and range inputs are not uploaded to EverydayTools servers.
Tests whether a version satisfies npm-style semver ranges (^, ~, >=, compound) with expansion explanations—browser-only, no upload.
Paste a concrete version (e.g., 1.4.2) and a range expression (e.g., ^1.2.0 or >=1.0.0 <2.0.0). Click Load sample or an example chip to try common cases.
The tool reports whether the version satisfies the range, with an explanation and range expansion when applicable. Failed lower or upper bounds are labeled.
If the version format is invalid, open Semver Tester to validate grammar. If the range syntax is invalid, check operator spelling and spacing in compound ranges.
Repeat for other version/range pairs from package.json or lockfile audits. Copy the result summary for PR notes or upgrade planning.
Common real-world scenarios where this tool saves time.
Before bumping a dependency, confirm the installed version still satisfies the declared range—or whether a major bump breaks ^ constraints.
Test whether a resolved lockfile version satisfies the semver range in package.json during security review or Dependabot PR triage.
When a publish or install step fails on semver constraints, paste the candidate version and range to see which bound failed.
Use example chips and range expansion output to internalize how caret and tilde differ under SemVer 2.0 / npm rules.
Step-by-step chains that connect related tools for common tasks.
Quick-check resolved versions against declared semver ranges.
Input
Version 1.4.2, range ^1.2.0Output
Satisfies — within >=1.2.0 <2.0.01.4.2 is greater than 1.2.0 and less than 2.0.0, so it satisfies ^1.2.0.
Input
Version 2.0.0, range ^1.2.0Output
Does not satisfy — upper bound failed^1.2.0 expands to <2.0.0. Version 2.0.0 is not less than 2.0.0.
Input
Version 1.2.5, range ~1.2.0Output
Satisfies — within >=1.2.0 <1.3.0Tilde allows patch updates within the same minor line.
Input
Version 1.5.0, range >=1.0.0 <2.0.0Output
Satisfies — both conditions passCompound ranges require all space-separated conditions to pass.
The tool parses the version with SemVer 2.0.0 grammar, parses the range into caret/tilde/comparator/AND structures, expands bounds, and compares using spec precedence rules. Build metadata is ignored in comparisons.
Formula
^X.Y.Z → >=X.Y.Z <(next major boundary); ~X.Y.Z → >=X.Y.Z <X.(Y+1).0Format validation vs range checking vs version bumps.
| Tool | Primary job | Range ^ ~ | Format validate | Browser-only | Signup |
|---|---|---|---|---|---|
| Semver Checker (EverydayTools) | Range satisfaction | Yes | No — use Tester | Yes | No |
| Semver Tester (EverydayTools) | Format validation | No | Yes | Yes | No |
| npm semver docs | Reference | Docs | Docs | N/A | No |
| Generic online checkers | Mixed | Sometimes | Sometimes | Often uploads | Sometimes |
How this EverydayTools page compares for typical use.
| Aspect | EverydayTools | Typical alternative |
|---|---|---|
| Cost | Free | Paid apps or trials |
| Privacy | Browser-local | Often requires cloud upload |
| Signup | Not required | Often required |
| Range expansion | Yes — ^ and ~ explained | Often result only |
Use Semver Checker for range satisfaction. Use Semver Tester for format and Semver Calculator for bumps.
| Related tool | Use this tool when | Use related tool when |
|---|---|---|
| Semver Tester | You know the version format is valid and need to test ^, ~, or compound ranges. | The version string may be malformed—validate SemVer 2.0.0 grammar first. |
| Semver Calculator | You need pass/fail against a declared dependency range. | You need to bump, compare, or sort concrete version strings. |
Run Semver Tester on candidate version strings from legacy tags before testing ranges here.
Use the expansion line to debug unexpected failures—especially caret upper bounds on major versions.
After a failed range check, use Semver Calculator to find the next compatible bump.
Validate version grammar on Semver Tester first. This page assumes well-formed MAJOR.MINOR.PATCH strings.
Use npm-style operators only. Other package managers have different range grammars.
1.0.0-alpha is lower precedence than 1.0.0. Stable releases outrank prereleases with the same numeric core.
Likely cause: Typo in operator, extra commas, or unsupported grammar (OR ranges, wildcards).
Fix: Use ^, ~, comparators, or space-separated AND only. Remove commas between conditions.
Likely cause: Prerelease versions may not satisfy ranges that expect stable releases depending on comparator context.
Fix: Compare numeric core and prerelease identifiers; review SemVer 2.0 precedence rules in the result explanation.
Use Semver Tester for grammar validation—leading zeros, missing patch, invalid prerelease IDs.
Use Semver Calculator for increment and ordering workflows.
Advertisement
Semver Checker (this page) tests whether a version satisfies a range (^, ~, >=, etc.). Semver Tester validates that a version string is well-formed SemVer 2.0.0 grammar. Semver Calculator compares two versions, bumps major/minor/patch, or sorts tag lists.
The caret (^) allows compatible updates without changing the left-most non-zero version component. ^1.2.3 means >=1.2.3 <2.0.0. ^0.2.3 means >=0.2.3 <0.3.0. ^0.0.3 means >=0.0.3 <0.0.4.
The tilde (~) allows patch-level updates when minor is specified. ~1.2.3 means >=1.2.3 <1.3.0. It is more restrictive than ^ for non-zero major versions.
Enter version 1.4.2 and range ^1.2.0. The checker expands ^1.2.0 to >=1.2.0 <2.0.0 and confirms 1.4.2 is within that interval.
Yes. This tool implements SemVer 2.0.0 comparison and npm-style range operators (^, ~, comparators, compound AND). It is not for Cargo, Maven, or Composer range grammars.
No—those ecosystems use different range grammars. This page follows npm/node-semver style rules for JavaScript dependency workflows.
Yes. Prerelease versions have lower precedence than stable releases without prerelease identifiers. Comparisons follow SemVer 2.0.0 ordering rules; build metadata is ignored.
Yes. Enter space-separated conditions such as >=1.0.0 <2.0.0. All conditions must pass (logical AND).
No. Range checking runs entirely in JavaScript in your browser. Version strings and range expressions never leave your device during normal use.
Open Developer Tools → Network tab, filter by Fetch/XHR, then run a compatibility check. You should see no requests carrying your semver inputs—only static assets load.
This checker expects well-formed SemVer strings. Use Semver Tester to validate format, fix grammar errors, then return here for range testing.
Yes. The layout is responsive with touch-friendly controls and a sticky status bar on mobile after you scroll.
Yes—free with no signup, no watermark, and no usage limits for browser-based range checks.
Yes. Use Copy result summary in the sidebar or mobile sticky bar to copy a one-line compatibility statement.
No. This tool helps explain semver compatibility for planning and debugging. Run npm audit, CI dependency scans, and lockfile updates for production security workflows.
Semver Checker keeps version and range inputs on your device—nothing is uploaded to EverydayTools servers for core checks.
Compatibility logic runs with JavaScript in your browser using SemVer 2.0.0 parsing and npm-style range expansion.
Open Developer Tools → Network tab while checking ranges. Filter Fetch/XHR—you should see no requests containing your inputs.
Limitations: npm-style ranges only. Not a substitute for npm audit, CI lockfile enforcement, or format validation (use Semver Tester).
Range testing for planning and debugging—not a substitute for CI dependency audits.
Advertisement
Reviewed by EverydayTools Editorial Team on 2026-06-02.
npm-style ranges
Test ^, ~, >=, <=, >, <, =, and compound ranges like >=1.0.0 <2.0.0 following SemVer 2.0 rules.
Range expansion
See how caret and tilde ranges expand so you understand why a version passes or fails.
Runs locally
Versions and ranges stay in browser memory—nothing is uploaded. Verify in the Network tab while testing.
Version satisfies range
Version 1.4.2 is within range >=1.2.0 <2.0.0
Expansion: ^1.2.0 expands to >=1.2.0 <2.0.0
Invalid version format? Validate the string on Semver Tester first, then return here for range checks. Open Semver Tester