문제

통화 가치와 일치하는 정규식을 찾으려고합니다.

나는 숫자와 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)?$
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top