Búsqueda de patrones sin distinción entre mayúsculas y minúsculas con el método Str::is de Laravel

  • Publicado el 04 febrero, 2025
  • Palabras: 60

¿Necesitas una comparación de patrones flexible en tus cadenas? El método Str::is ahora admite comparaciones que no distinguen entre mayúsculas y minúsculas, lo que hace que la comparación de patrones de cadenas sea más versátil.

Búsqueda de patrones sin distinción entre mayúsculas y minúsculas con el método Str::is de Laravel

#Uso básico

El método Str::is determina si una cadena determinada coincide con un patrón determinado. Se pueden utilizar asteriscos como valores comodín:

 

use IlluminateSupportStr;

// Simple string matching
Str::is('Admin', 'admin', true); // true

// Wildcard pattern matching
Str::is('*.jpg', 'photo.JPG', true); // true

// Prefix matching
Str::is('SKU123*', 'sku12345', true); // true

// Custom patterns
Str::is('prd-001*', 'PRD-001-XYZ', true); // true

// Email matching
Str::is('JOHN.DOE@example.com', 'john.doe@example.com', true); // true

 

#Ejemplo práctico

A continuación se explica cómo podría usarlo en un sistema de procesamiento de archivos:

 

class FileProcessor
{
    protected array $allowedExtensions = ['jpg', 'png', 'pdf'];

    public function validateFile(string $filename)
    {
        foreach ($this->allowedExtensions as $ext) {
            if (Str::is("*.{$ext}", $filename, true)) {
                return true;
            }
        }
        
        return false;
    }

    public function processUserUploads(array $files)
    {
        return collect($files)->filter(function ($file) {
            // Match user-specific files (e.g., USER123-*.*)
            return Str::is("USER*-*.*", $file, true);
        });
    }

    public function categorizeDocument(string $filename)
    {
        $patterns = [
            'invoice' => 'INV-*.*',
            'report' => 'RPT-*.*',
            'contract' => 'CTR-*.*'
        ];

        foreach ($patterns as $type => $pattern) {
            if (Str::is($pattern, $filename, true)) {
                return $type;
            }
        }

        return 'other';
    }
}

// Usage
$processor = new FileProcessor();

$processor->validateFile('image.JPG');     // true
$processor->validateFile('document.PDF');   // true
$processor->categorizeDocument('INV-001.pdf');  // 'invoice'
$processor->categorizeDocument('inv-002.PDF');  // 'invoice'

 

La opción que no distingue entre mayúsculas y minúsculas en Str::is hace que la coincidencia de patrones sea más flexible y fácil de usar.

Antonio Jenaro
Antonio Jenaro

Web Developer

Archivado en:

Fuente: Harris Raftopoulos

Artículos relacionados

Simplifica las comprobaciones de strings en Laravel con doesntContain
96

Simplifica las comprobaciones de strings en Laravel con doesntContain

Reemplazar patrones de cadenas en Laravel: uso de replaceMatches
425

Reemplazar patrones de cadenas en Laravel: uso de replaceMatches

Reemplaza los prefijos de strings con el método replaceStart de Laravel
414

Reemplaza los prefijos de strings con el método replaceStart de Laravel

Inicia la conversación

Hazte miembro de Antonio Jenaro para comenzar a comentar.

Regístrate ahora

¿Ya estás registrado? Inicia sesión