A cosa serve e come si usa questa regex?
Valida espressioni colore CSS in formato funzionale `rgb(r, g, b)` o `rgba(r, g, b, a)`.
Espressione Regolare (Pattern)
Flag consigliati:
i · Motori compatibili: JavaScript, PCRE/PHP, Python, Go, .NET
^(?:rgb\(\s*\d{1,3}\s*,\s*\d{1,3}\s*,\s*\d{1,3}\s*\)|rgba\(\s*\d{1,3}\s*,\s*\d{1,3}\s*,\s*\d{1,3}\s*,\s*(?:[01]|0?\.\d+)\s*\))$
Integrazione nel codice
Snippet pronti all'uso// JavaScript (ES6+)
const regex = /^(?:rgb\(\s*\d{1,3}\s*,\s*\d{1,3}\s*,\s*\d{1,3}\s*\)|rgba\(\s*\d{1,3}\s*,\s*\d{1,3}\s*,\s*\d{1,3}\s*,\s*(?:[01]|0?\.\d+)\s*\))$/i;
const isValid = regex.test(text);
// Estrazione match
const matches = text.match(regex);
<?php
// PHP 8.2+ (PCRE)
$pattern = '~^(?:rgb\(\s*\d{1,3}\s*,\s*\d{1,3}\s*,\s*\d{1,3}\s*\)|rgba\(\s*\d{1,3}\s*,\s*\d{1,3}\s*,\s*\d{1,3}\s*,\s*(?:[01]|0?\.\d+)\s*\))$~i';
$isValid = (bool) preg_match($pattern, $text);
// Estrazione con gruppi
if (preg_match($pattern, $text, $matches)) {
print_r($matches);
}
# Python 3 (re)
import re
pattern = r"^(?:rgb\(\s*\d{1,3}\s*,\s*\d{1,3}\s*,\s*\d{1,3}\s*\)|rgba\(\s*\d{1,3}\s*,\s*\d{1,3}\s*,\s*\d{1,3}\s*,\s*(?:[01]|0?\.\d+)\s*\))$"
is_valid = bool(re.search(pattern, text))
# Estrazione match
match = re.search(pattern, text)
if match:
print(match.group(0))
// Go (regexp)
package main
import (
"fmt"
"regexp"
)
func main() {
re := regexp.MustCompile(`^(?:rgb\(\s*\d{1,3}\s*,\s*\d{1,3}\s*,\s*\d{1,3}\s*\)|rgba\(\s*\d{1,3}\s*,\s*\d{1,3}\s*,\s*\d{1,3}\s*,\s*(?:[01]|0?\.\d+)\s*\))$`)
isValid := re.MatchString(text)
fmt.Println(isValid)
}
// C# (.NET)
using System;
using System.Text.RegularExpressions;
bool isValid = Regex.IsMatch(text, @"^(?:rgb\(\s*\d{1,3}\s*,\s*\d{1,3}\s*,\s*\d{1,3}\s*\)|rgba\(\s*\d{1,3}\s*,\s*\d{1,3}\s*,\s*\d{1,3}\s*,\s*(?:[01]|0?\.\d+)\s*\))$");
Come funziona (Spiegazione dettagliata)
rgba?accetta sia la funzionergbchergba.- I primi 3 gruppi di cattura estraggono i canali Rosso, Verde e Blu da 1 a 3 cifre.
- Il quarto gruppo opzionale estrae il valore di opacità alfa tra
0e1(es.0.5o.75).
Casi d’uso consigliati
- Editor grafici web e manipolazione di canvas
- Sanitizzazione di valori CSS inseriti dagli utenti
- Conversione di formati colore
Esempi che corrispondono (Validi)
4 test passatirgb(255, 0, 128)
rgba(13, 110, 253, 0.85)
rgb(0,0,0)
rgba(255, 255, 255, 1)
Esempi rifiutati (Non validi)
3 test respintirgb(255, 255)
rgba(255, 0, 0)
rgb(255, 255, 255, 0.5, extra)
Limiti tecnici e avvertenze
- La regex controlla che i numeri abbiano fino a 3 cifre, ma per garantire il range [0-255] rigoroso nel backend controllare che i valori non superino 255.
Espressioni regolari correlate
Base
Colore CSS HEX (#RGB, #RRGGBB, #RRGGBBAA)
Valida codici colore CSS esadecimali nelle varianti a 3, 4, 6 o 8 cifre (con canale alfa di trasparenza).
Vedi scheda
Base
Stringa in kebab-case
Valida stringhe formattate con parole minuscole separate esclusivamente da trattini singoli.
Vedi scheda
Base
ID HTML
Valida un identificatore HTML composto da lettere, numeri, underscore e trattini, senza iniziare con un numero.
Vedi scheda
Verifica empirica
Apri nel tester
Hai bisogno di collaudare questo pattern con i tuoi dati?
Apri il tester sandboxato con questa regex già caricata e verifica i gruppi di cattura.