Semver Checker — Test If a Version Satisfies a Range

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…

By Muhammad Abdullah Rauf · Founder, EverydayTools.proUpdated 2026-06-02· Reviewed by EverydayTools Editorial Team

What is a semver checker?

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.

Quick answers

Concise answers for common searches — definitions, steps, and comparisons.

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.

Is Semver Checker private?

Yes. Range checks run locally in your browser; version and range inputs are not uploaded to EverydayTools servers.

What does Semver Checker do?

Tests whether a version satisfies npm-style semver ranges (^, ~, >=, compound) with expansion explanations—browser-only, no upload.

How to use Semver Checker

  1. Enter version and range

    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.

  2. Review compatibility result

    The tool reports whether the version satisfies the range, with an explanation and range expansion when applicable. Failed lower or upper bounds are labeled.

  3. Fix invalid inputs

    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.

  4. Audit dependencies

    Repeat for other version/range pairs from package.json or lockfile audits. Copy the result summary for PR notes or upgrade planning.

Who uses Semver Checker?

Common real-world scenarios where this tool saves time.

npm dependency upgrade planning

Before bumping a dependency, confirm the installed version still satisfies the declared range—or whether a major bump breaks ^ constraints.

Lockfile vs package.json audits

Test whether a resolved lockfile version satisfies the semver range in package.json during security review or Dependabot PR triage.

CI range gate debugging

When a publish or install step fails on semver constraints, paste the candidate version and range to see which bound failed.

Learning ^ and ~ semantics

Use example chips and range expansion output to internalize how caret and tilde differ under SemVer 2.0 / npm rules.

Workflow guides

Step-by-step chains that connect related tools for common tasks.

Validate format → check range

  1. Confirm version grammar in Semver Tester when importing tags or package.json versions.
  2. Paste the version and npm range here to see compatibility with expansion details.

Failed range → plan bump

  1. Identify which bound failed (lower or upper) from the result panel.
  2. Compute the next compatible version in Semver Calculator after reviewing range expansion.

Audit package.json ranges

Quick-check resolved versions against declared semver ranges.

  1. Copy installed version and declared range from package.json or lockfile.
  2. Run the check locally—repeat for each dependency under review.

Learn ^ vs ~ with examples

  1. Click example chips (^1.2.0 vs ~1.2.0) and compare expansion output.
  2. Note how ^ allows minor updates until the next major boundary while ~ stops at the next minor.

Semver Checker examples

Compatible caret range

Input

Version 1.4.2, range ^1.2.0

Output

Satisfies — within >=1.2.0 <2.0.0

1.4.2 is greater than 1.2.0 and less than 2.0.0, so it satisfies ^1.2.0.

Major bump breaks caret

Input

Version 2.0.0, range ^1.2.0

Output

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.

Tilde patch allowance

Input

Version 1.2.5, range ~1.2.0

Output

Satisfies — within >=1.2.0 <1.3.0

Tilde allows patch updates within the same minor line.

Compound range

Input

Version 1.5.0, range >=1.0.0 <2.0.0

Output

Satisfies — both conditions pass

Compound ranges require all space-separated conditions to pass.

How browser semver range checking works

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).0

Limitations

  • npm-style ranges only—not Cargo, Maven, or Composer
  • Assumes well-formed version strings; use Semver Tester for format errors
  • Planning tool—not a substitute for npm audit or CI lockfile enforcement

Reference tables

Semver tools compared (2026)

Format validation vs range checking vs version bumps.

ToolPrimary jobRange ^ ~Format validateBrowser-onlySignup
Semver Checker (EverydayTools)Range satisfactionYesNo — use TesterYesNo
Semver Tester (EverydayTools)Format validationNoYesYesNo
npm semver docsReferenceDocsDocsN/ANo
Generic online checkersMixedSometimesSometimesOften uploadsSometimes

Semver Checker at a glance

How this EverydayTools page compares for typical use.

AspectEverydayToolsTypical alternative
CostFreePaid apps or trials
PrivacyBrowser-localOften requires cloud upload
SignupNot requiredOften required
Range expansionYes — ^ and ~ explainedOften result only

When to use Semver Checker vs related tools

Use Semver Checker for range satisfaction. Use Semver Tester for format and Semver Calculator for bumps.

Related toolUse this tool whenUse related tool when
Semver TesterYou 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 CalculatorYou need pass/fail against a declared dependency range.You need to bump, compare, or sort concrete version strings.

Best practices

Validate format before range checks

Run Semver Tester on candidate version strings from legacy tags before testing ranges here.

Read range expansion output

Use the expansion line to debug unexpected failures—especially caret upper bounds on major versions.

Pair with calculator for upgrade paths

After a failed range check, use Semver Calculator to find the next compatible bump.

Common mistakes to avoid

Using semver checker for format validation

Validate version grammar on Semver Tester first. This page assumes well-formed MAJOR.MINOR.PATCH strings.

Expecting Cargo or Maven range syntax

Use npm-style operators only. Other package managers have different range grammars.

Forgetting prerelease precedence

1.0.0-alpha is lower precedence than 1.0.0. Stable releases outrank prereleases with the same numeric core.

Troubleshooting

Range marked invalid but looks correct

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.

Prerelease fails unexpectedly

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.

When this tool isn't the right choice

You need to validate version string format

Use Semver Tester for grammar validation—leading zeros, missing patch, invalid prerelease IDs.

You need to bump or sort versions

Use Semver Calculator for increment and ordering workflows.

Advertisement

Frequently Asked Questions

What is the difference between Semver Checker, Semver Tester, and Semver Calculator?

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.

What does ^ mean in semver?

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.

What does ~ mean in semver?

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.

How do I check if 1.4.2 satisfies ^1.2.0?

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.

Does this follow npm / node-semver rules?

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.

Is this the same as Cargo or Maven ranges?

No—those ecosystems use different range grammars. This page follows npm/node-semver style rules for JavaScript dependency workflows.

Are prerelease versions handled?

Yes. Prerelease versions have lower precedence than stable releases without prerelease identifiers. Comparisons follow SemVer 2.0.0 ordering rules; build metadata is ignored.

Can I use compound ranges?

Yes. Enter space-separated conditions such as >=1.0.0 <2.0.0. All conditions must pass (logical AND).

Are my inputs uploaded to a server?

No. Range checking runs entirely in JavaScript in your browser. Version strings and range expressions never leave your device during normal use.

How can I verify nothing is uploaded?

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.

What if my version format is invalid?

This checker expects well-formed SemVer strings. Use Semver Tester to validate format, fix grammar errors, then return here for range testing.

Does Semver Checker work on mobile browsers?

Yes. The layout is responsive with touch-friendly controls and a sticky status bar on mobile after you scroll.

Is Semver Checker free?

Yes—free with no signup, no watermark, and no usage limits for browser-based range checks.

Can I copy results for PR comments?

Yes. Use Copy result summary in the sidebar or mobile sticky bar to copy a one-line compatibility statement.

Should I rely on this instead of npm audit?

No. This tool helps explain semver compatibility for planning and debugging. Run npm audit, CI dependency scans, and lockfile updates for production security workflows.

Privacy, accuracy, and trust

Privacy

Semver Checker keeps version and range inputs on your device—nothing is uploaded to EverydayTools servers for core checks.

How this tool works

Compatibility logic runs with JavaScript in your browser using SemVer 2.0.0 parsing and npm-style range expansion.

Verification guidance

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.