Semver Tester — Validate SemVer 2.0 Format & Grammar

Paste a semantic version to validate SemVer 2.0.0 grammar in your browser—instant feedback, parsed components, strict mode, and batch validation. For ^ / ~ ranges, use Semver Checker.

Loading tool…

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

What is a semver tester?

A semver tester validates whether a version string follows Semantic Versioning 2.0.0 grammar (MAJOR.MINOR.PATCH with optional prerelease and build metadata)—this tool runs locally in your browser with instant feedback and optional batch validation.

Semantic Versioning (SemVer) 2.0.0 defines a strict string format: three dot-separated numeric identifiers (major, minor, patch), optional prerelease labels after a hyphen, and optional build metadata after a plus sign. Numeric identifiers must not have leading zeros except the single digit `0`.

A semver tester checks whether a string conforms to that grammar before you publish to npm, tag a Git release, or wire a version into CI. Unlike a semver calculator (which bumps or compares versions) or a semver checker (which tests whether a version satisfies ^ or ~ ranges), this page focuses on **format validation**—is the string well-formed?

Paste one version for instant validation with parsed components and fix suggestions, or expand batch mode to validate many tags at once. For range compatibility, use Semver Checker after format passes.

Quick answers

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

Is 01.0.0 valid semver?

No. SemVer 2.0.0 forbids leading zeros in numeric identifiers. Use 1.0.0 instead of 01.0.0.

Is Semver Tester private?

Yes. Validation runs locally in your browser; version strings are not uploaded to EverydayTools servers. Verify in the Network tab while testing.

What does Semver Tester do?

Validates SemVer 2.0.0 version string format with instant feedback, parsed components, strict mode, and optional batch validation—no upload required.

How to use Semver Tester

  1. Paste a version string

    Type or paste a version into the input—for example 1.2.3, 2.0.0-alpha.1, or 1.5.0+20240101. Click Load sample or an example chip to try common cases.

  2. Review validation result

    Results update instantly. Valid versions show parsed major, minor, patch, prerelease, and build fields. Invalid versions show the specific grammar failure and fix suggestions.

  3. Toggle strict mode if needed

    Strict mode rejects a leading v prefix (v1.2.3). Turn strict mode off to strip v before validating—useful for Git tags that include the prefix.

  4. Batch validate or copy

    Expand batch validation to check many versions at once (one per line). Copy the normalized version from the summary rail. For range tests, open Semver Checker; for bumps, open Semver Calculator.

Who uses Semver Tester?

Common real-world scenarios where this tool saves time.

Pre-publish package.json checks

Validate the version field in package.json or Cargo.toml before npm publish or crate release—catch 01.0.0 and missing patch before CI fails.

Git tag hygiene

Confirm release tags follow SemVer 2.0.0 before pushing—especially when importing tags from another system with non-standard formatting.

CI pipeline gatekeeping

Paste candidate versions during code review to verify format compliance before semantic-release or conventional-changelog runs.

Batch tag audits

Paste a list of existing semver tags (one per line) to find invalid entries in a legacy repository without uploading tag data to a server.

Workflow guides

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

Validate → range check

Confirm format before testing dependency compatibility.

  1. Paste the version and confirm Valid status—or fix grammar errors using suggestions.
  2. Test whether it satisfies a range in Semver Checker for ^, ~, and compound npm ranges.

Validate → plan next release

  1. Ensure the current version string passes SemVer 2.0.0 validation.
  2. Bump major, minor, or patch in Semver Calculator after format is confirmed.

Batch audit → fix tags

Find invalid tags in a legacy repository.

  1. Paste git tag names one per line in batch validation.
  2. Fix invalid entries (leading zeros, missing patch) before enabling semantic-release or npm publish automation.

Validate package.json version field

  1. Copy the version value from package.json and paste it here.
  2. If valid, proceed with publish; if invalid, correct the string before CI runs npm publish.

Semver Tester examples

Valid release version

Input

1.2.3

Output

Valid — major 1, minor 2, patch 3

Standard three-part semver with no prerelease or build metadata.

Leading zero (invalid)

Input

01.0.0

Output

Invalid — leading zeros in numeric identifiers

SemVer 2.0.0 forbids leading zeros. Use 1.0.0 instead.

Prerelease version

Input

2.0.0-alpha.1

Output

Valid — prerelease alpha.1

Prerelease identifiers follow a hyphen. This version precedes 2.0.0 in precedence order.

Missing patch

Input

1.2

Output

Invalid — missing patch; suggestion: 1.2.0

All three numeric components are required. The tool suggests appending .0 when only major.minor is provided.

How browser SemVer validation works

The tool applies the SemVer 2.0.0 ABNF grammar via a regular expression and supplemental checks for leading zeros and empty prerelease identifiers. Valid strings are parsed into major, minor, patch, prerelease, and build components. Build metadata is reported but ignored for format validation purposes.

Formula

semver ::= major "." minor "." patch pre* build*

Limitations

  • Format validation only—no range or ^ / ~ satisfaction on this page
  • SemVer 2.0.0 strings only—not npm aliases or loose four-part versions
  • Batch mode processes lines locally; very large lists may slow low-memory devices

Reference tables

Semver tools compared (2026)

Format validation vs range checking vs version bumps.

ToolPrimary jobRange ^ ~Batch validateBrowser-onlySignup
Semver Tester (EverydayTools)Format validationNo — use CheckerYesYesNo
Semver Checker (EverydayTools)Range satisfactionYesVariesYesNo
semver.orgSpecification referenceDocs onlyNoN/ANo
Generic online validatorsFormat checkSometimesRareOften uploadsSometimes

Semver Tester 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
Batch modeYes — one line per versionOften single-version only

When to use Semver Tester vs related tools

Use Semver Tester for format pass/fail. Use Semver Checker for ranges and Semver Calculator for bumps and compares.

Related toolUse this tool whenUse related tool when
Semver CheckerYou need to confirm a single version string is well-formed before publishing.Format is valid and you need to test ^, ~, >=, or compound npm-style ranges.
Semver CalculatorYou are validating candidate version strings from package.json or Git tags.Strings are valid and you need to bump major/minor/patch or compare two versions.

Best practices

Validate before bumping

Confirm the current tag is valid SemVer before using Semver Calculator to plan the next major, minor, or patch release.

Batch audit legacy tags

Export git tag names (one per line) into batch mode to find non-compliant tags before migrating to semantic-release.

Verify privacy on internal versions

For proprietary version schemes, confirm the Network tab shows no upload while validating—browser-only processing is the default.

Common mistakes to avoid

Using semver tester for range compatibility

Validate format here first. Test ^1.2.0 or >=2.0.0 <3.0.0 on Semver Checker.

Publishing 01.0.0 after copying from another system

Remove leading zeros—npm and SemVer 2.0.0 reject 01.0.0. Use 1.0.0.

Expecting v-prefixed tags in strict mode

Disable strict mode to accept v1.2.3, or strip v before publishing to registries that require bare semver.

Troubleshooting

Valid on another site but invalid here

Likely cause: Some tools accept loose formats (four parts, v prefix in strict mode, or missing patch).

Fix: Read the specific error message. Toggle strict mode for v prefix. Ensure MAJOR.MINOR.PATCH with no leading zeros.

Prerelease rejected unexpectedly

Likely cause: Numeric prerelease identifiers with leading zeros (e.g., beta.01) violate SemVer 2.0.0.

Fix: Use beta.1 instead of beta.01, or use non-numeric identifiers.

When this tool isn't the right choice

You need to test npm dependency ranges

Use Semver Checker for ^, ~, >=, and compound range satisfaction—not this format validator.

You need to increment or compare two versions

Use Semver Calculator for bumping and ordering—not format validation.

Advertisement

Frequently Asked Questions

What does a SemVer tester validate?

It validates that a version string strictly follows Semantic Versioning 2.0.0 grammar: major.minor.patch with optional pre-release (e.g. -alpha.1) and build metadata (e.g. +build.001). It catches leading zeros in numeric identifiers (01.0.0 is invalid), missing patch components, empty prerelease identifiers, and invalid characters.

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

Semver Tester (this page) validates that a single version string is well-formed. Semver Checker tests whether a version satisfies an npm-style range like ^2.0.0 or >=1.5.0 <3.0.0. Semver Calculator compares two versions, bumps major/minor/patch, or sorts tag lists. Validate format here first, then use Checker or Calculator for the next step.

Why are leading zeros invalid in SemVer?

The SemVer 2.0.0 specification requires numeric identifiers to be non-negative integers without leading zeros. 01.0.0 is disallowed because it is ambiguous in some numeric contexts. Only 0 is valid as a single-digit zero component.

What is semantic versioning?

Semantic versioning (SemVer) is a versioning scheme where versions are MAJOR.MINOR.PATCH (e.g., 1.2.3). MAJOR increments signal incompatible API changes, MINOR for backward-compatible features, PATCH for backward-compatible fixes. Optional prerelease (1.0.0-beta) and build metadata (1.0.0+20240101) are supported.

What is a valid semver format?

A valid semver format is MAJOR.MINOR.PATCH where each number is a non-negative integer with no leading zeros (except 0). Examples: 1.0.0, 2.3.1, 1.0.0-alpha.1. Invalid: 1.0 (missing patch), 01.0.0 (leading zero), 1.0.0.0 (four numeric parts). Prerelease and build segments are optional.

What is a prerelease version?

A prerelease version has a hyphen and dot-separated identifiers after the patch (e.g., 1.0.0-alpha, 1.0.0-beta.1). Prerelease versions have lower precedence than the normal version without prerelease (1.0.0-alpha < 1.0.0). Used for alpha, beta, and release candidates.

Does this tool test ^ or ~ ranges?

No. Range satisfaction (^, ~, >=, compound ranges) belongs on Semver Checker. This tool validates whether individual version strings are well-formed. Use Checker after confirming format here.

How do I validate multiple versions at once?

Expand the batch validation section and enter one version per line. The tool validates each line and shows valid/invalid counts plus per-line error messages. Nothing is uploaded—processing runs in your browser.

What does strict mode do?

Strict mode enforces SemVer 2.0.0 literally: a leading v prefix (v1.2.3) is rejected. Turn strict mode off to strip v before validation—helpful when normalizing Git tags that include the prefix.

Are my version strings uploaded to a server?

No. Validation runs entirely in JavaScript in your browser. Your versions—including private package names and internal tags—never leave your device during normal use.

How can I verify nothing is uploaded?

Open Developer Tools → Network tab, filter by Fetch/XHR, then paste and validate version strings. You should see no requests carrying your semver input to external servers—only static assets load.

Can I use this for npm package versions?

Yes. npm follows SemVer 2.0.0 for the version field in package.json. Validate candidate versions here before publish. For dependency range checks against package.json dependencies, use Semver Checker.

How is this different from semver.org?

semver.org is the authoritative specification site. This tool is an interactive validator with instant feedback, parsed components, batch mode, and browser-local privacy—optimized for developers checking strings during release workflows.

Is Semver Tester free?

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

What version formats are not supported?

This tool validates SemVer 2.0.0 strings only—not loose semver ranges, npm aliases, or four-part versions like 1.0.0.0. Wildcards and range operators belong on Semver Checker, not here.

Privacy, accuracy, and trust

Privacy

Semver Tester keeps version strings on your device—nothing is uploaded to EverydayTools servers for core validation.

How this tool works

Validation runs with JavaScript in your browser using the SemVer 2.0.0 grammar. No server-side parsing occurs during normal use.

Verification guidance

Open Developer Tools → Network tab while validating. Filter Fetch/XHR—you should see no requests containing your version strings.

Limitations: Format validation only. Range operators (^, ~, >=) and version bumps require Semver Checker and Semver Calculator respectively.

Part of Developer Tools

More free tools for the same workflow.

Advertisement

Reviewed by EverydayTools Editorial Team on 2026-06-02.