JAVASCRIPT
Validate Semantic Versioning (SemVer)
Essential regex to accurately validate semantic version numbers (e.g., 1.2.3, 1.0.0-alpha.1) for consistent version management in web projects.
const semVerPattern = /^(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-]+)*))?$/;
function isValidSemVer(versionString) {
return semVerPattern.test(versionString);
}
console.log(isValidSemVer("1.0.0")); // true
console.log(isValidSemVer("1.0.0-alpha.1")); // true
console.log(isValidSemVer("2.1.3+build.123")); // true
console.log(isValidSemVer("0.5.9")); // true
console.log(isValidSemVer("1.0")); // false
console.log(isValidSemVer("invalid-version")); // false
How it works: This robust regex pattern validates strings against the Semantic Versioning 2.0.0 specification. It captures major, minor, and patch versions, optionally followed by pre-release identifiers and build metadata. It ensures that version strings adhere to the 'MAJOR.MINOR.PATCH' format with optional '-PRERELEASE' and '+BUILDMETADATA' components, making it ideal for managing software versions.