Как убедиться, что строка содержит только символы из предварительно определенного списка принятых символов? - PullRequest
0 голосов
/ 17 декабря 2010

Допустим, у меня есть HTML-страница с текстовым полем, которое просит пользователя ввести слово.Затем я использую переменную $_POST[] в своем скрипте PHP, чтобы поиграть с этой переменной и сделать что-то еще.Моя страница и мои PHP-скрипты будут работать с использованием кодировки UTF-8, поэтому пользователь может вводить что угодно.

Что я хотел бы знать, так это то, как я могу убедиться, что все символы, содержащиеся во введенном словепользователем являются частью предопределенного списка символов?

Например, список будет содержать символы от 0 до 9, от a до z, от A до Z, но также и некоторые другие символы, такие как ü, ù, ô, é, à, ẑ и так далее.Чего я не хочу, так это символов из русского алфавита, таких как а, з, б, у и т. Д. И других экзотических символов.

Я мог бы использовать регулярные выражения, но является ли это наиболее подходящим решением??Не слишком ли медленно?Как насчет массива со всеми символами?Это я или звучит очень медленно, чтобы пройтись по каждому символу слова, а также пройтись по массиву принятых символов и проверить каждую комбинацию.

Знаете ли вы хорошее решение?

Спасибо.

1 Ответ

2 голосов
/ 17 декабря 2010

RE быстрые, и они - путь. Создайте список символов, которые вы хотите, а затем инвертируйте смысл соответствия, как показано ниже.

if re.match(".*[^abcA-Z]", "d"):
  print "Your string has illegal characters"
...