2014-11-14 4 views
0

У меня есть некоторые значения, какфункция preg_match для проверки валюты Value

£523.22 
9454 
££45523 
741.03 
etc 

Я хочу, чтобы удалить эту £ от значения и проверить, действительно ли это vaue или не так, что я могу вставить их в базу данных I Создать выражение с помощью preg_match() or similar function for checking currency .y

$job_order=(preg_match("/^[£]*[0-9]*(.[0-9]*)?$/",$value) ? str_replace("£","",$value) : ''); 

если значение $ = £ 523,22, то его возвращение нуль. Но если его 741.03 за его работу. Я не знаю, что случилось с этим preg_match. я м импортирования это значение из .mer (Merge) file.If Я просто написать $ значение = £ 523,22, то его работу, но когда его читает значение из файла, то его не идентифицирующий знак фунта

+2

Вы можете удалить метку фунта и проверить, если все остальное число. 'is_numeric()' – zaynetro

+0

yes Я пробовал, чем если бы я удалил метку фунта, то ее работа – kreya

+0

Каковы ваши критерии для формата чисел (тысячи разделителей, число десятичных знаков, начальная десятичная точка, максимальное и минимальное значения)? Может ли символ валюты быть в конце? Всегда ли это '' '? –

ответ

0

Как насчет:

$value = preg_replace(/'£(?=\d+)/' , '', $value); 

или, если значение может быть £.50

$value = preg_replace(/'£(?=\.?\d+)/' , '', $value); 
+0

его не удалять символ фунта I означает, что обычный exp не соответствует значению – kreya

+0

@ Kreya: К сожалению, я не понимаю. Возможно, вы хотите изменить свой вопрос и добавить некоторые примеры строк и ожидаемый результат. – Toto

+0

Спасибо за ответ. Я отредактировал мой вопрос. – kreya

0

попробовать это для валюты матча /^((?:\d{1,3}[,\.]?)+\d*)$/

(preg_match('/^((?:\d{1,3}[,\.]?)+\d*)$/',,$value) ? str_replace("£","",$value) : ''); 

\d{1,3} от одного до трех цифр

вы можете увеличить число с помощью \d{1,X}

+0

Спасибо за ответ. Его не устранить символ фунта. за 523,22 фунтов стерлингов, давая ему нулевое значение вместо 523.22 – kreya

+0

вы можете отлаживать код по строкам, я думаю, что мой ans это для вас ... вы можете изменить эту строку кода вместо этой str_replace («£», «», значение $) – Ali

+0

посетите следующую ссылку, это поможет вам http://stackoverflow.com/questions/4982291/how-to-check-if-an-entered-value-is-currency – Ali

1

Вы можете использовать это:

$job_order = strtr($value, '£', ''); 
if (is_numeric($job_order)) { 
    // valid 
} else { 
    // invalid 
} 
Смежные вопросы