проверить время смещение GMT и чередующий с regex?

// create a string
$string = '+7';

// try to match the beginning of the string
if(preg_match("{-15 to +12}", $string))
    {
    // if it matches we echo this line
    return {strip all the + sign}
    echo 'its a valid gmt time';
    }
else
    {
    echo 'not valid gmt time';
    }

Вопрос:

  1. посмотрите первое {} на preg_match, то, как мы можем сделать это? Я являюсь новым на regex, и я просто не знаю, где запустить

  2. на втором {} мы можем так или иначе разделить + знак useing regex?

  3. диапазон по Гринвичу, является правильным?-14 к +12 (хорошо это - то, что я вижу на http://www.php.net/manual/en/timezones.others.php),

Спасибо

1
задан 25 July 2010 в 17:05
поделиться

5 ответов

function validGMT($input)
{
    $gmt = '/^(?:\+?(?:[0]?[0-9]|[1][0-2])|-(?:[0][0-9]|[1][0-4]))$/';
    if ( preg_match( $gmt, $input ) )
    {
        return true;
    }
    else
    {
        return false;
    }       
}

edit*

ive just notice that if you are at php5.2. сделайте это

$val='-2';
$options['options']['min_range'] = -14;
$options['options']['max_range'] = 12; 
$var1 = filter_var($val, FILTER_VALIDATE_INT,$options);
var_dump($var1);   
1
ответ дан 2 September 2019 в 22:47
поделиться

Я бы сделал:

preg_match("/^([+-]\d+)/", $string, $m);
if(isset($m[1]) && $m[1] > -16 && $m[1] < 13) {
    echo 'its a valid gmt time';
} else {
    echo 'not valid gmt time';
}
0
ответ дан 2 September 2019 в 22:47
поделиться

Вот так:

  1. //соответствие 0-15 со знаком +,- впереди.

    if(preg_match("/(+|-)([0-9]|1[1-5])/", $string)){
     // процесс совпадения здесь 
    }
    

Это будет соответствовать вашим -15,+12, я думаю.

  1. Чтобы убрать все знаки {+}.

    //убрать + и заменить на + $newString = str_replace(array("+"),"", $oldString);

0
ответ дан 2 September 2019 в 22:47
поделиться

Regexp может быть таким:

/\+?[0-9]|\+?1[0-2]|\-[1-9]|\-1[0-5]/

Это будет соответствовать 0..12, +0..+12, -1..-15
. Если требуется знак +, используйте RegExp без ?

затем просто выполните str_replace для числа:

$number = str_relace('+', '', $number);
0
ответ дан 2 September 2019 в 22:47
поделиться
$string = '+7';
if (in_array($string, range(-15, 12))) {
    echo 'its a valid gmt time';
} else {
    echo 'not valid gmt time';
}
1
ответ дан 2 September 2019 в 22:47
поделиться
Другие вопросы по тегам:

Похожие вопросы: