在我的php中,我使用preg_match来验证输入文本。用于货币值(如5000或5000.00)的文本框可以接受空白。
$pattrn="/^[0-9]{10}$/";
通过使用它,它只能验证数字。如何使用preg_match筛选此输入?
您可以使用:
$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()或类似的货币检查函数示例