문제
통화 가치와 일치하는 정규식을 찾으려고합니다.
나는 숫자와 1 소수점 1을 일치시키고 싶습니다.
허용된
- 10
- 100
- 100.00
허용되지 않습니다
- 알파 문자
- 100,00
- +/- 100
나는 검색을했고 운이없는 몇 가지를 시도했습니다.
당신이 조언 할 수 있기를 바랍니다
해결책
if (preg_match('/^[0-9]+(?:\.[0-9]+)?$/', $subject))
{
# Successful match
}
else
{
# Match attempt failed
}
참고 사항 : 원하는 자리 수를 제한하려면 다음과 같은 일을 할 수 있습니다.
/^[0-9]+(?:\.[0-9]{1,3})?$/im
그래서
100.000
일치하는 동안 일치 할 것입니다
100.0001
습관.
추가 도움이 필요한 경우 의견을 게시하십시오.
추신 가능하면 위에 게시 된 Formatter 번호를 사용하십시오. 기본 기능은 항상 더 좋고 (더 빠르고), 그렇지 않으면이 솔루션이 당신에게 잘 제공됩니다.
다른 팁
이건 어때
if (preg_match('/^\d+(\.\d{2})?$/', $subject))
{
// correct currency format
} else {
//invalid currency format
}
Regex 사용에 대한 다른 대안을 고려할 수 있습니다.
예를 들어, 있습니다 NumberFormatter
유연한 수와 통화를 제공하는 클래스 구문 분석 그리고 서식, 국제화 지원 구축.
PHP 5.3 이상에 내장되어 있으며 이전 버전의 PHP 5에서 확장으로 제공됩니다.
이 정규 표현을 시도하십시오.
^(?:[1-9]\d+|\d)(?:\.\d\d)?$
제휴하지 않습니다 StackOverflow