mirror of
https://github.com/wiosna-dev/common-library.git
synced 2026-03-12 01:31:45 +01:00
Add Regex::clearBeginningSlash() and Regex::clearEndingSlash() methods (that remove slash from the beginning and the end of given string)
This commit is contained in:
@@ -34,6 +34,56 @@ File: `src/Utilities/Regex.php`
|
||||
- value: `"Lorem ipsum. Dolor sit 12.34 amet."`
|
||||
- result: `"lorem-ipsum-dolor-sit-1234-amet"`
|
||||
|
||||
### clearBeginningSlash(string): string
|
||||
|
||||
> Clears, removes slash from the beginning of given string
|
||||
|
||||
##### Arguments
|
||||
|
||||
- `string $string` - String that may contains slash as the 1st character
|
||||
|
||||
##### Examples
|
||||
|
||||
1)
|
||||
|
||||
- string: `"lorem ipsum"`
|
||||
- result: `"lorem ipsum"`
|
||||
|
||||
2)
|
||||
|
||||
- string: `"/lorem ipsum"`
|
||||
- result: `"lorem ipsum"`
|
||||
|
||||
3)
|
||||
|
||||
- string: `"/ lorem 123 ipsum"`
|
||||
- result: `" lorem 123 ipsum"`
|
||||
|
||||
### clearEndingSlash(string): string
|
||||
|
||||
> Clears, removes slash from the end of given string
|
||||
|
||||
##### Arguments
|
||||
|
||||
- `string $string` - String that may contains slash as the last character
|
||||
|
||||
##### Examples
|
||||
|
||||
1)
|
||||
|
||||
- string: `"lorem ipsum"`
|
||||
- result: `"lorem ipsum"`
|
||||
|
||||
2)
|
||||
|
||||
- string: `"lorem ipsum/"`
|
||||
- result: `"lorem ipsum"`
|
||||
|
||||
3)
|
||||
|
||||
- string: `"lorem 123 ipsum /"`
|
||||
- result: `"lorem 123 ipsum "`
|
||||
|
||||
# More
|
||||
|
||||
1. [Base test case (with common methods and data providers)](../Base-test-case.md)
|
||||
|
||||
@@ -40,6 +40,8 @@ class Regex
|
||||
'color' => '/^[a-f0-9]{6}$/i',
|
||||
'bundleName' => '/^(([A-Z]{1}[a-z0-9]+)((?2))*)(Bundle)$/',
|
||||
'binaryValue' => '/[^\x20-\x7E\t\r\n]/',
|
||||
'beginningSlash' => '|^\/|',
|
||||
'endingSlash' => '|\/$|',
|
||||
|
||||
/*
|
||||
* Matches:
|
||||
@@ -999,4 +1001,18 @@ class Regex
|
||||
|
||||
return preg_replace('/[-\s]+/', '-', $result);
|
||||
}
|
||||
|
||||
public static function clearBeginningSlash(string $string): string
|
||||
{
|
||||
$pattern = static::$patterns['beginningSlash'];
|
||||
|
||||
return preg_replace($pattern, '', $string);
|
||||
}
|
||||
|
||||
public static function clearEndingSlash(string $string): string
|
||||
{
|
||||
$pattern = static::$patterns['endingSlash'];
|
||||
|
||||
return preg_replace($pattern, '', $string);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -649,6 +649,28 @@ class RegexTest extends BaseTestCase
|
||||
self::assertSame($expected, Regex::createSlug($value));
|
||||
}
|
||||
|
||||
/**
|
||||
* @param string $string
|
||||
* @param string $expected
|
||||
*
|
||||
* @dataProvider provideStringToClearBeginningSlash
|
||||
*/
|
||||
public function testClearBeginningSlash(string $string, string $expected): void
|
||||
{
|
||||
static::assertSame($expected, Regex::clearBeginningSlash($string));
|
||||
}
|
||||
|
||||
/**
|
||||
* @param string $string
|
||||
* @param string $expected
|
||||
*
|
||||
* @dataProvider provideStringToClearEndingSlash
|
||||
*/
|
||||
public function testClearEndingSlash(string $string, string $expected): void
|
||||
{
|
||||
static::assertSame($expected, Regex::clearEndingSlash($string));
|
||||
}
|
||||
|
||||
/**
|
||||
* Provides name of bundle and information if it's valid name
|
||||
*
|
||||
@@ -1983,6 +2005,212 @@ class RegexTest extends BaseTestCase
|
||||
];
|
||||
}
|
||||
|
||||
public function provideStringToClearBeginningSlash(): ?Generator
|
||||
{
|
||||
yield[
|
||||
'',
|
||||
'',
|
||||
];
|
||||
|
||||
yield[
|
||||
'/',
|
||||
'',
|
||||
];
|
||||
|
||||
yield[
|
||||
'\\',
|
||||
'\\',
|
||||
];
|
||||
|
||||
yield[
|
||||
'//',
|
||||
'/',
|
||||
];
|
||||
|
||||
yield[
|
||||
'lorem ipsum',
|
||||
'lorem ipsum',
|
||||
];
|
||||
|
||||
yield[
|
||||
'1234',
|
||||
'1234',
|
||||
];
|
||||
|
||||
yield[
|
||||
'lorem/ipsum',
|
||||
'lorem/ipsum',
|
||||
];
|
||||
|
||||
yield[
|
||||
'lorem / ipsum',
|
||||
'lorem / ipsum',
|
||||
];
|
||||
|
||||
yield[
|
||||
'lorem\ipsum',
|
||||
'lorem\ipsum',
|
||||
];
|
||||
|
||||
yield[
|
||||
'lorem \ ipsum',
|
||||
'lorem \ ipsum',
|
||||
];
|
||||
|
||||
yield[
|
||||
'\lorem ipsum',
|
||||
'\lorem ipsum',
|
||||
];
|
||||
|
||||
yield[
|
||||
'\ lorem ipsum',
|
||||
'\ lorem ipsum',
|
||||
];
|
||||
|
||||
yield[
|
||||
'lorem ipsum/',
|
||||
'lorem ipsum/',
|
||||
];
|
||||
|
||||
yield[
|
||||
'lorem ipsum /',
|
||||
'lorem ipsum /',
|
||||
];
|
||||
|
||||
yield[
|
||||
'/lorem ipsum',
|
||||
'lorem ipsum',
|
||||
];
|
||||
|
||||
yield[
|
||||
'/ lorem ipsum',
|
||||
' lorem ipsum',
|
||||
];
|
||||
|
||||
yield[
|
||||
'/123 456',
|
||||
'123 456',
|
||||
];
|
||||
|
||||
yield[
|
||||
'/ 123 456',
|
||||
' 123 456',
|
||||
];
|
||||
|
||||
yield[
|
||||
'/lorem 123 ipsum 456',
|
||||
'lorem 123 ipsum 456',
|
||||
];
|
||||
|
||||
yield[
|
||||
'/ lorem 123 ipsum 456',
|
||||
' lorem 123 ipsum 456',
|
||||
];
|
||||
}
|
||||
|
||||
public function provideStringToClearEndingSlash(): ?Generator
|
||||
{
|
||||
yield[
|
||||
'',
|
||||
'',
|
||||
];
|
||||
|
||||
yield[
|
||||
'/',
|
||||
'',
|
||||
];
|
||||
|
||||
yield[
|
||||
'\\',
|
||||
'\\',
|
||||
];
|
||||
|
||||
yield[
|
||||
'//',
|
||||
'/',
|
||||
];
|
||||
|
||||
yield[
|
||||
'lorem ipsum',
|
||||
'lorem ipsum',
|
||||
];
|
||||
|
||||
yield[
|
||||
'1234',
|
||||
'1234',
|
||||
];
|
||||
|
||||
yield[
|
||||
'lorem/ipsum',
|
||||
'lorem/ipsum',
|
||||
];
|
||||
|
||||
yield[
|
||||
'lorem / ipsum',
|
||||
'lorem / ipsum',
|
||||
];
|
||||
|
||||
yield[
|
||||
'lorem\ipsum',
|
||||
'lorem\ipsum',
|
||||
];
|
||||
|
||||
yield[
|
||||
'lorem \ ipsum',
|
||||
'lorem \ ipsum',
|
||||
];
|
||||
|
||||
yield[
|
||||
'\lorem ipsum',
|
||||
'\lorem ipsum',
|
||||
];
|
||||
|
||||
yield[
|
||||
'\ lorem ipsum',
|
||||
'\ lorem ipsum',
|
||||
];
|
||||
|
||||
yield[
|
||||
'/lorem ipsum',
|
||||
'/lorem ipsum',
|
||||
];
|
||||
|
||||
yield[
|
||||
'/ lorem ipsum',
|
||||
'/ lorem ipsum',
|
||||
];
|
||||
|
||||
yield[
|
||||
'lorem ipsum/',
|
||||
'lorem ipsum',
|
||||
];
|
||||
|
||||
yield[
|
||||
'lorem ipsum /',
|
||||
'lorem ipsum ',
|
||||
];
|
||||
|
||||
yield[
|
||||
'123 456/',
|
||||
'123 456',
|
||||
];
|
||||
|
||||
yield[
|
||||
'123 456 /',
|
||||
'123 456 ',
|
||||
];
|
||||
|
||||
yield[
|
||||
'lorem 123 ipsum 456/',
|
||||
'lorem 123 ipsum 456',
|
||||
];
|
||||
|
||||
yield[
|
||||
'lorem 123 ipsum 456 /',
|
||||
'lorem 123 ipsum 456 ',
|
||||
];
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
|
||||
Reference in New Issue
Block a user