<?php
/* Дан текст, который по идее должен быть номером телефона в виде 8-(911)-506 56 56
(т.е. человек может ввести не только цифры, но и скобки, минусы, может что-то еще).
Но в реальности, пользователь может вместо номера написать что угодно.
Напиши скрипт для проверки правильности введенного номера («8(911)-506 56 56» —
правильный номер, «8-911-50-656-56» — правильный, «89115065656» — правильный,
«02» — неправильный, «89115065656 позвать Люду» — неправильный).*/
// Правильные:
$correctNumbers = [
'84951234567' ,
'+74951234567' ,
'8-495-1-234-567' ,
' 8 (8122) 56-56-56' ,
'8-911-1234567' ,
'8 (911) 12 345 67' ,
'8-911 12 345 67' ,
'8 (911) - 123 - 45 - 67' ,
'+ 7 999 123 4567' ,
'8 ( 999 ) 1234567' ,
'8 999 123 4567'
] ;
// Неправильные:
$incorrectNumbers = [
'02' ,
'84951234567 позвать люсю' ,
'849512345' ,
'849512345678' ,
'8 (409) 123-123-123' ,
'7900123467' ,
'5005005001' ,
'8888-8888-88' ,
'84951a234567' ,
'8495123456a' ,
'+1 234 5678901' , /* неверный код страны */
'+8 234 5678901' , /* либо 8 либо +7 */
'7 234 5678901' /* нет + */
] ;
$regExp = '/^(\+\s?7|8)([\s\(\)-]*\d){10}$/' ;
foreach ( array_merge ( $correctNumbers , $incorrectNumbers ) as $number ) { echo "Номер \" {$number} \" правильный.\n " ;
} else {
echo "Номер \" {$number} \" ошибочный.\n " ;
}
}
PD9waHAKLyog0JTQsNC9INGC0LXQutGB0YIsINC60L7RgtC+0YDRi9C5INC/0L4g0LjQtNC10LUg0LTQvtC70LbQtdC9INCx0YvRgtGMINC90L7QvNC10YDQvtC8INGC0LXQu9C10YTQvtC90LAg0LIg0LLQuNC00LUgOC0oOTExKS01MDYgNTYgNTYKKNGCLtC1LiDRh9C10LvQvtCy0LXQuiDQvNC+0LbQtdGCINCy0LLQtdGB0YLQuCDQvdC1INGC0L7Qu9GM0LrQviDRhtC40YTRgNGLLCDQvdC+INC4INGB0LrQvtCx0LrQuCwg0LzQuNC90YPRgdGLLCDQvNC+0LbQtdGCINGH0YLQvi3RgtC+INC10YnQtSkuCtCd0L4g0LIg0YDQtdCw0LvRjNC90L7RgdGC0LgsINC/0L7Qu9GM0LfQvtCy0LDRgtC10LvRjCDQvNC+0LbQtdGCINCy0LzQtdGB0YLQviDQvdC+0LzQtdGA0LAg0L3QsNC/0LjRgdCw0YLRjCDRh9GC0L4g0YPQs9C+0LTQvdC+LgrQndCw0L/QuNGI0Lgg0YHQutGA0LjQv9GCINC00LvRjyDQv9GA0L7QstC10YDQutC4INC/0YDQsNCy0LjQu9GM0L3QvtGB0YLQuCDQstCy0LXQtNC10L3QvdC+0LPQviDQvdC+0LzQtdGA0LAgKMKrOCg5MTEpLTUwNiA1NiA1NsK7IOKAlArQv9GA0LDQstC40LvRjNC90YvQuSDQvdC+0LzQtdGALCDCqzgtOTExLTUwLTY1Ni01NsK7IOKAlCDQv9GA0LDQstC40LvRjNC90YvQuSwgwqs4OTExNTA2NTY1NsK7IOKAlCDQv9GA0LDQstC40LvRjNC90YvQuSwKwqswMsK7IOKAlCDQvdC10L/RgNCw0LLQuNC70YzQvdGL0LksIMKrODkxMTUwNjU2NTYg0L/QvtC30LLQsNGC0Ywg0JvRjtC00YPCuyDigJQg0L3QtdC/0YDQsNCy0LjQu9GM0L3Ri9C5KS4qLwoKLy8g0J/RgNCw0LLQuNC70YzQvdGL0LU6IAokY29ycmVjdE51bWJlcnMgPSBbIAogICc4NDk1MTIzNDU2NycsIAogICcrNzQ5NTEyMzQ1NjcnLAogICc4LTQ5NS0xLTIzNC01NjcnLCAKICAnIDggKDgxMjIpIDU2LTU2LTU2JywKICAnOC05MTEtMTIzNDU2NycsCiAgJzggKDkxMSkgMTIgMzQ1IDY3JywgCiAgJzgtOTExIDEyIDM0NSA2NycsCiAgJzggKDkxMSkgLSAxMjMgLSA0NSAtIDY3JywKICAnKyA3IDk5OSAxMjMgNDU2NycsIAogICc4ICggOTk5ICkgMTIzNDU2NycsCiAgJzggOTk5IDEyMyA0NTY3JwpdOwoKLy8g0J3QtdC/0YDQsNCy0LjQu9GM0L3Ri9C1OiAKJGluY29ycmVjdE51bWJlcnMgPSBbCiAgJzAyJywKICAnODQ5NTEyMzQ1Njcg0L/QvtC30LLQsNGC0Ywg0LvRjtGB0Y4nLAogICc4NDk1MTIzNDUnLAogICc4NDk1MTIzNDU2NzgnLCAKICAnOCAoNDA5KSAxMjMtMTIzLTEyMycsCiAgJzc5MDAxMjM0NjcnLAogICc1MDA1MDA1MDAxJywKICAnODg4OC04ODg4LTg4JywKICAnODQ5NTFhMjM0NTY3JywKICAnODQ5NTEyMzQ1NmEnLCAKICAnKzEgMjM0IDU2Nzg5MDEnLCAvKiDQvdC10LLQtdGA0L3Ri9C5INC60L7QtCDRgdGC0YDQsNC90YsgKi8KICAnKzggMjM0IDU2Nzg5MDEnLCAvKiDQu9C40LHQviA4INC70LjQsdC+ICs3ICovCiAgJzcgMjM0IDU2Nzg5MDEnIC8qINC90LXRgiArICovCl07CgoKJHJlZ0V4cCA9ICcvXihcK1xzPzd8OCkoW1xzXChcKS1dKlxkKXsxMH0kLyc7CmZvcmVhY2goYXJyYXlfbWVyZ2UoJGNvcnJlY3ROdW1iZXJzLCAkaW5jb3JyZWN0TnVtYmVycykgYXMgJG51bWJlcikgewoJJG51bWJlciA9IHRyaW0oJG51bWJlcik7CglpZiAocHJlZ19tYXRjaCgkcmVnRXhwLCAkbnVtYmVyKSkgewoJCWVjaG8gItCd0L7QvNC10YAgXCJ7JG51bWJlcn1cIiDQv9GA0LDQstC40LvRjNC90YvQuS5cbiI7Cgl9IGVsc2UgewoJCWVjaG8gItCd0L7QvNC10YAgXCJ7JG51bWJlcn1cIiDQvtGI0LjQsdC+0YfQvdGL0LkuXG4iOwoJfQp9