Регулярное выражение для текста с разделителями-запятыми

Я создаю текстовое поле для добавления тегов, разделенных запятыми. (например, php, jquery, js, ruby ​​on rails) Поле похоже на одно на stakoverflow, где вы добавляете теги для сообщений.

Я хочу проверить вход, чтобы убедиться, что теги введены правильно. Это означает, что пользователи могут вводить только буквы, цифры, пробелы и запятые. Я сделал следующее regex_match, но я не совсем уверен, что это правильно.

regex_match[/^[az, ]+$/i] 

Если вход содержит что-либо, кроме того, что я добавил в регулярное выражение, я получаю ошибку проверки при отправке формы. Я тестировал, и он работает, когда я помещаю символы типа ' " ; \

Это мое первое регулярное выражение, я делаю все правильно? Язык – это PHP.

Хорошо, здесь есть несколько проблем:

  1. Нет функции php, называемой "regex_match"
  2. функция использует (), а не []
  3. переменные начинаются с $. Внутренняя часть [] является индексом.

Выведенная строка приведет к синтаксической ошибке в PHP. Поскольку вы «протестировали его», это означает, что это не тот код, который вы использовали. Отправьте фактический код.

О регулярном выражении, это хорошая первая попытка, но вы забыли числа:

 /^[az,0-9 ]+$/i 

Почему бы не использовать функцию str_getcsv , он будет разбирать строку CSV в массив, а затем вы можете проверять каждый тег индивидуально с ctype_alnum функции ctype_alnum и отбрасывать ctype_alnum 😉

Вот правильный шаблон регулярного выражения, если он вам действительно нужен:

 '/^[a-z0-9]+(, [a-z0-9]+)*$/i'