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.
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…
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.
Concise answers for common searches — definitions, steps, and comparisons.
No. SemVer 2.0.0 forbids leading zeros in numeric identifiers. Use 1.0.0 instead of 01.0.0.
Yes. Validation runs locally in your browser; version strings are not uploaded to EverydayTools servers. Verify in the Network tab while testing.
Validates SemVer 2.0.0 version string format with instant feedback, parsed components, strict mode, and optional batch validation—no upload required.
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.
Results update instantly. Valid versions show parsed major, minor, patch, prerelease, and build fields. Invalid versions show the specific grammar failure and fix suggestions.
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.
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.
Common real-world scenarios where this tool saves time.
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.
Confirm release tags follow SemVer 2.0.0 before pushing—especially when importing tags from another system with non-standard formatting.
Paste candidate versions during code review to verify format compliance before semantic-release or conventional-changelog runs.
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.
Step-by-step chains that connect related tools for common tasks.
Confirm format before testing dependency compatibility.
Find invalid tags in a legacy repository.
Input
1.2.3Output
Valid — major 1, minor 2, patch 3Standard three-part semver with no prerelease or build metadata.
Input
01.0.0Output
Invalid — leading zeros in numeric identifiersSemVer 2.0.0 forbids leading zeros. Use 1.0.0 instead.
Input
2.0.0-alpha.1Output
Valid — prerelease alpha.1Prerelease identifiers follow a hyphen. This version precedes 2.0.0 in precedence order.
Input
1.2Output
Invalid — missing patch; suggestion: 1.2.0All three numeric components are required. The tool suggests appending .0 when only major.minor is provided.
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*Format validation vs range checking vs version bumps.
| Tool | Primary job | Range ^ ~ | Batch validate | Browser-only | Signup |
|---|---|---|---|---|---|
| Semver Tester (EverydayTools) | Format validation | No — use Checker | Yes | Yes | No |
| Semver Checker (EverydayTools) | Range satisfaction | Yes | Varies | Yes | No |
| semver.org | Specification reference | Docs only | No | N/A | No |
| Generic online validators | Format check | Sometimes | Rare | 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 |
| Batch mode | Yes — one line per version | Often single-version only |
Use Semver Tester for format pass/fail. Use Semver Checker for ranges and Semver Calculator for bumps and compares.
| Related tool | Use this tool when | Use related tool when |
|---|---|---|
| Semver Checker | You 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 Calculator | You 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. |
Confirm the current tag is valid SemVer before using Semver Calculator to plan the next major, minor, or patch release.
Export git tag names (one per line) into batch mode to find non-compliant tags before migrating to semantic-release.
For proprietary version schemes, confirm the Network tab shows no upload while validating—browser-only processing is the default.
Validate format here first. Test ^1.2.0 or >=2.0.0 <3.0.0 on Semver Checker.
Remove leading zeros—npm and SemVer 2.0.0 reject 01.0.0. Use 1.0.0.
Disable strict mode to accept v1.2.3, or strip v before publishing to registries that require bare semver.
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.
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.
Use Semver Checker for ^, ~, >=, and compound range satisfaction—not this format validator.
Use Semver Calculator for bumping and ordering—not format validation.
Advertisement
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
Yes—free with no signup, no watermark, and no usage limits for browser-based validation.
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.
Semver Tester keeps version strings on your device—nothing is uploaded to EverydayTools servers for core validation.
Validation runs with JavaScript in your browser using the SemVer 2.0.0 grammar. No server-side parsing occurs during normal use.
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.
SemVer 2.0.0 grammar
Validates MAJOR.MINOR.PATCH with optional prerelease and build metadata—catches leading zeros and missing patch.
Instant feedback
Results update as you type with parsed components, fix suggestions, and prerelease precedence notes.
Runs locally
Version strings stay in browser memory—nothing is uploaded. Verify in the Network tab while testing.
Need to test whether a version satisfies ^ or ~ ranges? Use Semver Checker — this tool validates format only. Open Semver Checker