mirror of
https://github.com/phpbb/phpbb.git
synced 2025-06-07 20:08:53 +00:00
[ticket/10423] Match multiple wildcards
Multiple wildcards are removed from the string if there is no word before or after them. If there is a word before or after them, they are just replaced with a single one. PHPBB3-10423
This commit is contained in:
parent
face175471
commit
dde7ac3b2b
2 changed files with 4 additions and 2 deletions
|
@ -372,9 +372,9 @@ function phpbb_clean_search_string($search_string)
|
|||
{
|
||||
// This regular expressions matches every single wildcard.
|
||||
// That means one after a whitespace or the beginning of the string or one before a whitespace or the end of the string.
|
||||
$search_string = preg_replace('#(?<=^|\s)\*(?=\s|$)#', '', $search_string);
|
||||
$search_string = preg_replace('#(?<=^|\s)\*+(?=\s|$)#', '', $search_string);
|
||||
$search_string = trim($search_string);
|
||||
$search_string = preg_replace('#\s+#u', ' ', $search_string);
|
||||
$search_string = preg_replace(array('#\s+#u', '#\*+#u'), array(' ', '*'), $search_string);
|
||||
return $search_string;
|
||||
}
|
||||
|
||||
|
|
|
@ -24,6 +24,8 @@ class phpbb_functions_content_phpbb_clean_search_string_test extends phpbb_test_
|
|||
array('* *test*', '*test*'),
|
||||
array('test test * test', 'test test test'),
|
||||
array(' some wild*cards * between wo*rds ', 'some wild*cards between wo*rds'),
|
||||
array(' we * now have*** multiple wild***cards * ', 'we now have* multiple wild*cards'),
|
||||
array('pi is *** . * **** * *****', 'pi is .'),
|
||||
);
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue