Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум Регулярные Выражения

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Регулярка для часового сдвига
 
 автор: Visavi   (08.09.2008 в 20:11)   письмо автору
 
 

Здравствуйте, нужно написать регулярное выражения чтобы пропускало что-то типа примерно таких знаков
-1
-12
0
+5
+24

Я написал такое выражение
<?php 
preg_match
('|^[\-\+]{0,1}[0-9]{1,2}$|',$str)
правильное ли оно, заранее спасибо

  Ответить  
 
 автор: Trianon   (08.09.2008 в 20:42)   письмо автору
 
   для: Visavi   (08.09.2008 в 20:11)
 

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

  Ответить  
 
 автор: Visavi   (08.09.2008 в 21:39)   письмо автору
 
   для: Trianon   (08.09.2008 в 20:42)
 

Пример можно?
что-то типа такого?
<?php
$arr
=array('-24','-23','-22'....'0','+1'....)
if(
in_array($str,$arr)){...

  Ответить  
 
 автор: xx77   (09.09.2008 в 18:27)   письмо автору
 
   для: Visavi   (08.09.2008 в 21:39)
 

можно попробовать например такие два способа
<?
$text 
split('[[:space:]]+',
'-1
-12
0
+5
+24

-25 +01 +0'
);
foreach(
$text AS $k => $v) {
$i = (isset($v) &&preg_match('#^[+\-](?!0$)(?:2[0-4]|1?\d)$#'$v) ) ? $v'0';
print 
$k .'=' $i "<br/>";
}

print 
"<hr/>";

foreach(
$text AS $k => $v) {
$i = (isset($v) && $v >-25 && $v<25) ? (( $v 0) ? '+':  '') . intval($v): '0';
print 
$k .'=' $i "<br/>";
}
?>

отличаются тем что первый срособ не пропустит +01
а второй преобразует к +1

проверку isset() вставил на всякий случай

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования