Launching a SaaS?·Collect waitlist signups before you build — before.run
SandboxPatternsDetectDocsChangelog
Developer Tools
#semver
#version
#range
#npm

SemVer Range Specifier

Validates Semantic Versioning (SemVer) ranges such as ^1.2.3, ~0.1.0, >=1.0.0, or 1.x.

✓ Package manager dependency parsing✓ Release tag validation✓ Config file linting
/
/
Safe
Test String
5 matches
(?:…)?Non-capturing group— Non-capturing group — groups without capturing (no index assigned) — repeated zero or one time (optional) · ? — zero or one time (optional)
[…]Character class […]— Matches any single character listed in this set
||— | — alternation: matches expression on left OR right
>>— '>' — literal character
=?=— '=' — literal character — repeated zero or one time (optional) · ? — zero or one time (optional)
||— | — alternation: matches expression on left OR right
<<— '<' — literal character
=?=— '=' — literal character — repeated zero or one time (optional) · ? — zero or one time (optional)
||— | — alternation: matches expression on left OR right
==— '=' — literal character
=?=— '=' — literal character — repeated zero or one time (optional) · ? — zero or one time (optional)
\s*space— \s — whitespace (space, tab, newline…) — repeated zero or more times (greedy) · * — zero or more times (greedy)
v?v— 'v' — literal character — repeated zero or one time (optional) · ? — zero or one time (optional)
(?:…)Non-capturing group— Non-capturing group — groups without capturing (no index assigned)
00— '0' — literal character
||— | — alternation: matches expression on left OR right
[…]Character class […]— Matches any single character listed in this set
\d*digit— \d — digit (0–9) — repeated zero or more times (greedy) · * — zero or more times (greedy)
(?:…)?Non-capturing group— Non-capturing group — groups without capturing (no index assigned) — repeated zero or one time (optional) · ? — zero or one time (optional)
\.\.— \. — escaped character '.'
(?:…)Non-capturing group— Non-capturing group — groups without capturing (no index assigned)
(?:…)?Non-capturing group— Non-capturing group — groups without capturing (no index assigned) — repeated zero or one time (optional) · ? — zero or one time (optional)
\.\.— \. — escaped character '.'
(?:…)Non-capturing group— Non-capturing group — groups without capturing (no index assigned)
(?:…)?Non-capturing group— Non-capturing group — groups without capturing (no index assigned) — repeated zero or one time (optional) · ? — zero or one time (optional)
--— '-' — literal character
[…]+Character class […]— Matches any single character listed in this set — repeated one or more times (greedy) · + — one or more times (greedy)
(?:…)?Non-capturing group— Non-capturing group — groups without capturing (no index assigned) — repeated zero or one time (optional) · ? — zero or one time (optional)
\+\+— \+ — escaped character '+'
[…]+Character class […]— Matches any single character listed in this set — repeated one or more times (greedy) · + — one or more times (greedy)
Pattern: 134 charsInput: 40 chars
100% client-side · private

✓ Valid Examples

  • ^1.2.3
  • ~0.1.0
  • >=2.0.0
  • v1.0.0-alpha.1
  • 1.x

✗ Invalid Examples

  • invalid.version.range
  • 1.2.3.4
  • >>>1.0.0

Usage & Integration

Validate SemVer Range Specifier natively in your backend or frontend without copying regex strings.

Node / Edge

import { validate } from '@regexto/validators';

validate('semver-range', '...');

Python

from regexto_validators import validate

validate("semver-range", "...")

Go

import "github.com/regex-to/validators-go"

valid, err := validators.Validate("semver-range", "...")

PHP

use RegexTo\Validators\Validator;

Validator::validate('semver-range', '...');

Rust

use regexto_validators::validate;

let is_valid = validate("semver-range", "...").unwrap();