你提供的正则表达式有一个小问题:小数点前面的数字部分是匹配的,但小数点本身没有被正确转义。此外,你的正则表达式允许以小数点结尾的数字,这在大多数情况下是不符合预期的。
你可以使用以下正则表达式来匹配整数或最多两位小数的数字:
if (preg_match('/^[0-9]+(\.[0-9]{1,2})?$/', $accountPrice)) { echo '整数或小数二位的正则'; } else { echo '错'; }
这里的 \. 是转义的小数点,表示匹配一个实际的小数点字符。
示例代码<?php $testCases = [ '111', '1112.', '2324.1', '2324.15', '2324.157', // wrong '0.57' ]; foreach ($testCases as $accountPrice) { if (preg_match('/^[0-9]+(\.[0-9]{1,2})?$/', $accountPrice)) { echo "$accountPrice: 整数或小数二位的正则\n"; } else { echo "$accountPrice: 错\n"; } } ?>输出结果
111: 整数或小数二位的正则 1112.: 错 2324.1: 整数或小数二位的正则 2324.15: 整数或小数二位的正则 2324.157: 错 0.57: 整数或小数二位的正则解释^[0-9]+:匹配一个或多个数字,表示整数部分。(\.[0-9]{1,2})?:匹配一个小数点后跟一到两位数字的部分,这部分是可选的(即可以没有小数部分)。$:表示字符串的结束。
通过这个正则表达式,你可以正确匹配整数和最多两位小数的数字。
网友回复
DLNA与UPnP的区别和不同?
苏超自建抢票app,通过先预约再抽签化解高并发抢票?
python如何让给电脑在局域网中伪装成电视接收手机的投屏图片视频播放?
如何结合python+js如何自己的视频编码与加密播放直播?
python如何在电脑上通过局域网将本地视频或m3u8视频投屏电视播放?
腾讯视频爱奇艺优酷vip电影电视剧视频如何通过python绕过vip收费直接观看?
有没有可免费观看全球电视台直播m3u8地址url的合集?
有没有实现观影自由的免vip影视苹果 CMS V10 API的可用url?
python如何实时检测电脑usb插入检测报警?
如何判断真人操作的鼠标移动直线轨迹与机器操作的轨迹?