Я пытаюсь проверить часовые пояса.Пример:
UTC-12
UTC-6:30
Итак - UTC останется прежним, знак будет чередоваться (+ или -), а число варьируется от -12 до + 14.
Я не понимаю, почемуэто регулярное выражение не работает (я получаю недействительным):
$val = 'UTC+12';
$range = '-11:30|-11|-10:30|-10|-9:30|-9|-8:30|-8|-7:30|-7|-6:30|-6|-5:30|-5|-4:30|-4|-3:30|-3|-2:30|-2|-1:30|-1|-0:30|\+0|\+0:30|\+1|\+1:30|\+2|\+2:30|\+3|\+3:30|\+4|\+4:30|\+5|\+5:30|\+5:45|\+6|\+6:30|\+7|\+7:30|\+8|\+8:30|\+8:45|\+9|\+9:30|\+10|\+10:30|\+11|\+11:30|\+12|\+12:45|\+13|\+13:45|\+14';
$regex = '/^UTC(\+|-)(' . $range . ')/';
if(preg_match($regex, $val)){
echo 'valid';
}else{
echo 'not valid';
}
ОБНОВЛЕНИЕ: глупо меня.так просто.Я забыл, что уже использую знаки в моем массиве $ range.так глупо.Мне даже не нужно проверять наличие признаков внутри моего регулярного выражения.Спасибо всем.
$regex = '/^UTC(' . $range . ')/';