Как бы я сделал это выражение preg_match () reg игнорировать пробелы? - PullRequest
1 голос
/ 22 декабря 2010

У меня есть это регулярное выражение:

if(preg_match("/^(\\d+)(,)(\\d+)$/") ) { ... }

, который проверяет, что пользователь ввел пару чисел, разделенных запятой (например, 120,80). У меня эта часть работает правильно. Однако я ожидаю, что пользователи могут случайно ввести пробел между любыми персонажами. Я хотел бы, чтобы выражение игнорировало ВСЕ пробельные символы, независимо от того, где они встречаются в шаблоне. Я пробовал это:

if(preg_match("/x^(\\d+)(,)(\\d+)$/x") ) { ... }

А также это:

if(preg_match("/(^(\\d+)(,)(\\d+))$/x") ) { ... }

Но, похоже, ничего не работает. Любая идея будет принята с благодарностью. Кстати, я все еще изучаю этот материал, так что примите это во внимание! Благодарю. : D

Ответы [ 2 ]

3 голосов
/ 22 декабря 2010

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

$input = str_replace(" ", "", $input);
2 голосов
/ 22 декабря 2010

Попробуйте:

if(preg_match("/^\s*\d+\s*,\s*\d+\s*$/",$input) ) { 
   // $input has two numbers separated by a comma and may have whitespace
   // around the number and/or around the comma.
}
...