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.