提问者:小点点

只允许预匹配数字、空格和货币格式


在我的php中,我使用preg_match来验证输入文本。用于货币值(如5000或5000.00)的文本框可以接受空白。

 $pattrn="/^[0-9]{10}$/";

通过使用它,它只能验证数字。如何使用preg_match筛选此输入?


共2个答案

匿名用户

您可以使用:

$pattrn = "/^(?:\d+(?:\.\d+)?)?$/";

说明:

/^             # Assert position at the beginning of the string
(?:            # Begin a non-capturing group
    \d+        #   Match one or more digits from 0-9
    (?:        #   Begin a non-capturing group
        \.\d+  #    Match a dot (.) followed by one more digits from 0-9
    )?         #   Make the capturing group optional
)?             # Make the capturing group optional
$/             # Assert positon at the end of the string

Regex101演示

匿名用户

您应该使用$pattrn="^((?:\d.\d{3}.|\d{1,3}.)?\d{1,3},\d{1,2})$";

请参见preg_match()或类似的货币检查函数示例