murilomagalhaes/masquerade

此包已被废弃,不再维护。没有推荐替代包。

Masquerade是一个库,包含一些方法,帮助您进行文本操作。

1.3.3 2023-02-27 17:35 UTC

This package is auto-updated.

Last update: 2024-06-27 20:17:23 UTC


README

🦝 Masquerade

PHP文本操作库

Static Analisys (PHP-STAN)

点击这里访问此文件的葡萄牙语版本! 🇵🇹 🇧🇷

Masquerade是一个库,包含一些方法,帮助您进行文本操作,因此您(希望如此)不需要再次谷歌正则表达式。它旨在操作短字符串,如表单输入等,甚至提供掩码/格式化方法。

要求

  • PHP: ^7.4|8.*
  • Composer

安装

composer require murilomagalhaes/masquerade

使用

  • 安装包后,在您的源文件中调用它。
use Masquerade\Masquerade
  • 使用set()方法开始链接过滤器、掩码和其他可用方法
Masquerade::set("Phone: (Brazil) +55 61999995555'")
    ->only('numbers')
    ->mask('## (##) #####-####')
    ->getText(); // Returns: "55 (61) 99999-5555"

示例

  • 过滤
Masquerade::set("I got 99 problems but regex ain't one!")
    ->only('letters', 'whitespaces')
    ->getText(); // Returns: "I got problems but regex aint one!"

Masquerade::set("Phone: +55 00 99999-5555")
    ->only('numbers')
    ->getText(); // Returns "5500999995555"

Masquerade::set("Assistant (to the) regional manager")
    ->between('(', ')')
    ->getText(); // Returns "to the"

Masquerade::set("Hello, Universe")
    ->strip('Hello,')
    ->getText(); // Returns: "Universe"

Masquerade::set("I got 998 problems, but regex ain't one!")
    ->ignore('8')
    ->only('letters', 'whitespaces') // Note that the "numbers" type is missing, so all numbers should be filtered out.
    ->getText(), // Returns: "I got 8 problems but regex aint one!". The '8' was kept by the ignore() method

Masquerade::set("Hablo Español y Português")
    ->removeAccents()
    ->getText(); // Returns: "Hablo Espanol y Portugues"
  • 掩码 | 格式化
Masquerade::set("Phone: (Brazil) +55 00999995555'")
    ->only('numbers')
    ->mask('## (##) #####-####')
    ->getText(); // Returns: "55 (00) 99999-5555"

Masquerade::set("00011122234") 
    ->only('numbers')
    ->mask('###.###.###-##')
    ->getText(); // Returns: "000.111.222-34"
  • 自定义方法(宏)
use Masquerade\StringHandler;

Masquerade::macro('maskAsPhone', function(StringHandler $handler){
    return $handler->only('numbers')->mask('(##) #####-####');
});

Masquerade::set('Number: 00999995555')
    ->maskAsPhone()
    ->getText(); // Returns: "(00) 99999-5555"
  • 获取器
$text = Masquerade::set('YMCA');

$text->mask('#-#-#-#');

$text->getText(); // Returns: "Y-M-C-A"
$text->getUnmaskedText(); // Returns: "YMCA"

可用方法

方法签名 描述
set(string $text): Masquerade 创建一个新的Masquerade实例,并定义要由链式方法使用的文本字符串。
only(...$filter_types): Masquerade 仅保留在$filter_types参数上定义的字符类型。可用类型:'letters''numbers''punctuation''whitespaces'
以下字符被视为标点符号:, . : ; ? ¿ ! ¡ -
ignore(... $character) 定义的字符不会被only()方法删除。必须在该方法之前调用以生效
strip(...$characters): Masquerade 从文本字符串中删除定义的字符
between(string $before, string $after): Masquerade 仅保留在$before$after参数之间的字符;
removeAccents(): Masquerade 删除所有字符的变音符号。
(acute|cedil|circ|grave|lig|orn|ring|slash|th|tilde|uml|)
mask(string $pattern): Masquerade 将定义的模式应用于文本字符串
format(string $pattern): Masquerade mask方法的别名
trim(): Masquerade 从文本字符串中删除尾随和多个空格/制表符
(方法始终应用于类__toString()和getText()方法)
static::macro(string $name, callable $callback): void 定义宏/自定义方法
getText(): string 返回文本字符串
getOriginalText(): string 返回文本字符串的原始状态
getUnmaskedText(): string 返回掩码前的文本字符串