|
|
|
| Здравствуйте, нужно написать регулярное выражения чтобы пропускало что-то типа примерно таких знаков
-1
-12
0
+5
+24
Я написал такое выражение
<?php
preg_match('|^[\-\+]{0,1}[0-9]{1,2}$|',$str)
| правильное ли оно, заранее спасибо | |
|
|
|
|
|
|
|
для: Visavi
(08.09.2008 в 20:11)
| | обычно такие вещи прроверяют не столько регуляркой , сколько обычным сравнением с границами диапазона. | |
|
|
|
|
|
|
|
для: Trianon
(08.09.2008 в 20:42)
| | Пример можно?
что-то типа такого?
<?php
$arr=array('-24','-23','-22'....'0','+1'....)
if(in_array($str,$arr)){...
|
| |
|
|
|
|
|
|
|
для: 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() вставил на всякий случай | |
|
|
|