Compare commits

...

1 Commits

Author SHA1 Message Date
Clemens Schwaighofer
2889012592 Add no dash character list allowed in Strings parseCharacterRanges function
Same rules with returning unique elements array
2026-01-14 10:49:14 +09:00
3 changed files with 10 additions and 0 deletions

View File

@@ -743,6 +743,11 @@ final class CoreLibsConvertStringsTest extends TestCase
'abcdefghijklmnopqrstuvwxyz0123',
null,
],
'range without dashes' => [
['abcddfff'],
'abcdf',
null,
],
'invalid ranges' => [
['a-あ', 'A-あ', '0-あ'],
'',

View File

@@ -141,6 +141,7 @@ print "[B] LAST PREGE ERROR: " . preg_last_error() . " -> "
. Strings::getLastRegexErrorString() . " -> " . preg_last_error_msg() . "<br>";
$base_strings = [
'abcddfff',
'A-Z',
'a-z',
'A-Za-z',

View File

@@ -287,6 +287,10 @@ class Strings
// Remove all spaces
$input = str_replace(' ', '', $input);
$result = [];
// if there is no - inside, return unique characters as array
if (strpos($input, '-') === false) {
return array_unique(mb_str_split($input));
}
// Find all patterns like "A-Z" (character-dash-character)
preg_match_all('/(.)-(.)/u', $input, $matches, PREG_SET_ORDER);
foreach ($matches as $match) {