Home

Awesome

Laravel Advanced String Package

Tested, community maintained, supercharged Laravel string functions.

Latest Version on Packagist GitHub Tests Action Status GitHub Code Style Action Status Total Downloads

Laravel Advanced String is a Laravel package that adds advanced string manipulation methods to the built in Str class that Laravel provides. You get extended functionality on strings such as advanced password generation, data redaction, and more.

The Laravel Advanced String package by default adds macros to the Str class so your can access the extended functionality in the same class that your other string methods are found in. You can also disable this functionality the in the package config and use the AdvStr class directly.

Example

https://github.com/user-attachments/assets/ad4eb551-f383-4ed7-b9db-c44823e637c8

Str::redactSsn('My social security number is 222-22-2222'); // My social security number is xxxxxx

OR...

AdvStr::redactSsn('My social security number is 222-22-2222'); // My social security number is xxxxxx

Table of Contents

Installation

You can install the package via composer:

composer require mpstenson/laravel-advanced-string

You can publish the config file with:

php artisan vendor:publish --tag="laravel-advanced-string-config"

This is the contents of the published config file:

return [

    /*
    // Macro the AdvStr class to the Illuminate\Support\Str class. You can disable
    // this here if you don't want the AdvStr methods available on the Str class
    */

    'use_str' => true,

];

Usage

The Laravel Advanced String package by default adds macros to the Str class so your can access the extended functionality immediately

Str::redactSsn('123-45-6789')

Available Methods

advPassword

Generates a random, secure password.

public static function advPassword(
    $length = 32,
    $letters = true,
    $numbers = true,
    $symbols = true,
    $spaces = false,
    $upperLetters = false,
    $lowerLetters = false,
    $exclude = []
)

Parameters:

Returns:

charWrap

Wraps a string at a given number of characters regardless of words.

public static function charWrap(
    $string, 
    $length = 80
)

Parameters:

Returns:

emailDomain

Extracts the domain part of an email address, including subdomains.

public static function emailDomain(
    $string
)

Parameters:

Returns:

randomPhrase

Returns a random phrase with a configurable delimiter.

public static function randomPhrase(
    $wordCount,
    $separator = '-'
)

Parameters:

Returns:

randomWord

Returns a random word.

public static function randomWord(
)

Parameters:

Returns:

readTime

Calculates the read time of a string.

public static function readTime(
    $string, 
    $wpm = 200
)

Parameters:

Returns:

redactCreditCard

Redacts credit card numbers in a string.

public static function redactCreditCard(
    $string, 
    $redacted = '********', 
    $exclude = []
)

Parameters:

Returns:

redactSsn

Redacts Social Security Numbers (SSN) in a string.

public static function redactSsn(
    $string, 
    $redacted = '********', 
    $dashes = true, 
    $noDashes = true
)

Parameters:

Returns:

splitName

Splits a full name into first name, middle name (if present), and last name, removing any prefixes and suffixes. This method can handle both "Firstname Lastname" and "Lastname, Firstname" formats.

public static function splitName(
    $name
)

Parameters:

Returns:

Testing

composer test

Changelog

Please see CHANGELOG for more information on what has changed recently.

Credits

License

The MIT License (MIT). Please see License File for more information.