← Back to all snippets
JAVASCRIPT

Validate Semantic Version String (SemVer)

Master regex for validating semantic version strings (SemVer) like 1.0.0, 1.0.0-alpha, or 1.0.0-rc.1+build.234, crucial for version control and package management.

function isValidSemVer(versionString) {
    // Regex based on semver.org specifications
    // Matches major.minor.patch[-pre-release][+build-metadata]
    const semVerRegex = /^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(?:-((?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\.(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\+([0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?$/;
    return semVerRegex.test(versionString);
}

console.log(isValidSemVer("1.0.0")); // true
console.log(isValidSemVer("0.1.5-alpha.beta")); // true
console.log(isValidSemVer("2.1.0+build.123")); // true
console.log(isValidSemVer("1.0")); // false
console.log(isValidSemVer("1.0.0-0A.build")); // false (pre-release can't start with 0 if it has leading digits)
How it works: This JavaScript function validates a string against the Semantic Versioning (SemVer) specification using a comprehensive regex pattern. It ensures the format adheres to major.minor.patch, optional pre-release identifiers, and optional build metadata, crucial for managing software versions in development.

Need help integrating this into your project?

Our team of expert developers can help you build your custom application from scratch.

Hire DigitalCodeLabs