2012-06-19 6 views
0

Так что я пытаюсь preg_match адрес в PHP.Preg_match address

Это буквы букв SPACE, а не цифры пробелы. Итак, вот так: Myplace 16. Длина цифр и букв не имеет значения, но их нельзя смешивать.

Я уже попробовал этот, но этот doens't проверки пространств:

if(preg_match("/^[0-9a-zA-Z_]{5,}$/", $adres) === 0) 
{ 
echo 'Address is wrong'; 
} 

Заранее спасибо!

+0

Так, например, "abc 1/2/D efg"? – deceze

+0

не больше, чем abc 09, никаких цифр перед любыми буквами. Он всегда должен заканчиваться цифрами, как настоящий адрес –

+0

Я вижу, я читал * «буквы SPACE номера, а не цифры пробелы буквы» * неправильно тогда. Я был бы полезен, если бы вы предложили несколько примеров, чтобы сделать его однозначным, что вы хотите. – deceze

ответ

1

Образец, который вы показали, совсем не соответствует тому, что вы пытаетесь сделать. Для ваших целей, вы могли бы сделать что-то вроде

/^[a-zA-Z]+\ +[0-9]+$/ 

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

Если, конечно, я не понимаю, что вы пытаетесь достичь ...

+0

Это сделало трюк! Большое спасибо. –

0

Я использую 1, чтобы захватить ошибку (preg_match возвращает ложь, и 0, не ровня)

if(1 !== preg_match('/^[a-z]*\ +\d*$/i', $address)) 
{ 
    echo 'Address is wrong'; 
} 

Это будет соответствовать любому символу между az (нечувствительным к регистру) между 0 и неограниченным временем, затем сопоставить хотя бы пробельный символ, а затем любые числа от 0 до неограниченного времени. Если вам нужны хотя бы 1 письмо и 1 номер, пожалуйста, измените * на +