wpcf7_is_tel()CF7 1.0

Проверяет, является ли переданный контент номером телефона.

Хуки из функции

Возвращает

null. 1 - проверка пройдена, 0 - проверка не пройдена.

Алгоритм работы
  1. Строка обрезается с помощью PHP функции trim();
  2. Строка проверяется с помощью PHP функции preg_match() на соответствие шаблону:

    '%^[+]?' // Знак "+" вначале
    . '(?:\([0-9]+\)|[0-9]+)' // (1234) или 1234
    . '(?:[/ -]*' // разделители (пробел, дефис)
    . '(?:\([0-9]+\)|[0-9]+)' // (1234) или 1234
    . ')*$%';

Использование

wpcf7_is_tel( $tel );

Примеры

0

#1 Проверим телефон

$tel = '+7 928 123 45 78';

if ( wpcf7_is_tel( $tel ) ) {
	echo 'Это номер телефона';
} else {
	echo 'Это не телефон';
}

Выведет Это номер телефона, так как он действительно корректный.

0

#2 Вариации проверки

wpcf7_is_tel( '+7 928 123 45 78' )  // 1
wpcf7_is_tel( '7 928 123 45 78' )   // 1
wpcf7_is_tel( '+7-928-123-45-78' )  // 1
wpcf7_is_tel( '15135354354' )       // 1
wpcf7_is_tel( ' 45 228 665' )       // 1
wpcf7_is_tel( '45 228 665' )        // 1
wpcf7_is_tel( '1' )                 // 1
wpcf7_is_tel( '0' )                 // 1
wpcf7_is_tel( '+7' )                // 1
wpcf7_is_tel( true )                // 1
wpcf7_is_tel( '+7.928.123.45.78' )  // 0
wpcf7_is_tel( '+ 7 928 123 45 78' ) // 0
wpcf7_is_tel( '15135sssss354354' )  // 0
wpcf7_is_tel( '15135привет354354' ) // 0
wpcf7_is_tel( 's 45 228 665' )      // 0
wpcf7_is_tel( '+ 45 228 665' )      // 0
wpcf7_is_tel( '+' )                 // 0
wpcf7_is_tel( false )               // 0
wpcf7_is_tel( new stdClass() )      // 0 и PHP Warning:  trim() expects parameter 1 to be string, object given

Код wpcf7_is_tel() CF7 5.9.3

function wpcf7_is_tel( $text ) {
	$text = preg_replace( '%[()/.*#\s-]+%', '', $text );
	$result = preg_match( '/^[+]?[0-9]+$/', $text );
	return apply_filters( 'wpcf7_is_tel', $result, $text );
}