Я создаю текстовое поле для добавления тегов, разделенных запятыми. (например, php, jquery, js, ruby on rails) Поле похоже на одно на stakoverflow, где вы добавляете теги для сообщений.
Я хочу проверить вход, чтобы убедиться, что теги введены правильно. Это означает, что пользователи могут вводить только буквы, цифры, пробелы и запятые. Я сделал следующее regex_match, но я не совсем уверен, что это правильно.
regex_match[/^[az, ]+$/i]
Если вход содержит что-либо, кроме того, что я добавил в регулярное выражение, я получаю ошибку проверки при отправке формы. Я тестировал, и он работает, когда я помещаю символы типа ' " ; \
Это мое первое регулярное выражение, я делаю все правильно? Язык – это PHP.
Хорошо, здесь есть несколько проблем:
Выведенная строка приведет к синтаксической ошибке в PHP. Поскольку вы «протестировали его», это означает, что это не тот код, который вы использовали. Отправьте фактический код.
О регулярном выражении, это хорошая первая попытка, но вы забыли числа:
/^[az,0-9 ]+$/i
Почему бы не использовать функцию str_getcsv
, он будет разбирать строку CSV в массив, а затем вы можете проверять каждый тег индивидуально с ctype_alnum
функции ctype_alnum
и отбрасывать ctype_alnum
😉
Вот правильный шаблон регулярного выражения, если он вам действительно нужен:
'/^[a-z0-9]+(, [a-z0-9]+)*$/i'