У меня уже есть рабочий код, но мне нужен кто-то, чтобы помочь объяснить, почему он работает, если он может!
Я использую PHP для замены чего-либо в строке, если это не az, AZ, 0-9, запятая, точка с запятой, символ подчеркивания или дефис (который в конечном итоге должен представлять либо одно имя пользователя, либо запятую/список точек с запятой, разделенных запятой).
Следующие работы:
$data = preg_replace('/[^,;a-zA-Z0-9_-]/s', '', $data);
Но следующее:
$data = preg_replace('/[^a-zA-Z0-9_-,;]/s', '', $data);
Почему это будет работать только тогда, когда запятая и точка с запятой находятся в начале? Помещение их в конец, кажется, нарушает вещи (это то, что я пытался сначала, когда я наткнулся /[^ a-zA-Z0-9 _-]/s.
В стороне, я также использую следующее, чтобы обрезать любые конечные точки с запятой (множественное число) или запятые (множественное число), и кто-то может предложить более эффективный и/или элегантный способ сделать это:
if(preg_match('/;$/', $data))
{
$data = rtrim($data, ';' );
}
if(preg_match('/,$/', $data))
{
$data = rtrim($data, ',' );
}
Спасибо за любую помощь:)