Как указать условие [0-9 ]+((\.|,)[0-9]+)? в в XML фиде.

Samail
На сайте с 10.05.2007
Offline
369
697

Нужно что бы добавлялась строка если значение цифры точка/запятая цифры или только цифры.

Сейчас у меня указано

if (strlen($squarefeet) == 0 || $squarefeet==0 || (preg_replace('#[0-9\,\.]+#ius','',$squarefeet) != '')) return '';

Но в данном случае в фид попадают и значения 42.4. и получаю ошибку:

Статус XSD:
[Error], line: 16047, cvc-pattern-valid: Value '42.4.' is not facet-valid with respect to pattern '[0-9 ]+((\.|,)[0-9]+)?' for type 'loose-float'.

Как не пропускать в фид такие значения?

mfl
На сайте с 16.10.2006
Offline
134
mfl
#1

preg_replace('#\d+([\.,]\d+)?#', '', $squarefeet)

я бы использовал такое условие:

if($squarefeet AND preg_match('#^\d+([\.,]\d+)?$#', $squarefeet)) добавляем строку;

else return '';

mfl добавил 12.09.2011 в 08:06

Samail, так Вы сами написали паттерн: [0-9 ]+((\.|,)[0-9]+)? - его и можно использовать

\d+([\.,]\d+)? - более короткий вариант

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий