You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

美元/加元金额正则表达式修改需求(PHP环境)

适配PHP的0-99.99美元/加元金额验证正则

最终正则表达式(PHP兼容)

如果用单引号定义正则(推荐,转义更少更直观):

$pattern = '/^\$?([1-9]\d?|0)\.\d{2}\$?$/';

如果用双引号定义,需要额外转义反斜杠(因为双引号会解析转义字符):

$pattern = "/^\\$?([1-9]\\d?|0)\\.\\d{2}\\$?$/";

正则规则拆解

我把每个部分的作用拆解开,方便你理解为什么这么写:

  • ^\$?:匹配字符串开头,可选的美元/加元符号(PHP里必须转义$,避免和正则的结束标记、PHP字符串变量语法冲突)
  • ([1-9]\d?|0):整数部分的核心约束
    • 0:唯一允许的前导零场景(也就是0.00这种合法的零金额)
    • [1-9]\d?:匹配1-9的一位数,或者10-99的两位数,彻底杜绝01.20这类带前导零的无效格式
  • \.\d{2}:强制要求小数点后必须有恰好两位数字,完美适配1.20、10.10这类规范格式,直接拒绝10.1、.12这类不完整的写法
  • \$?$:匹配字符串结尾,可选的美元/加元符号(支持符号在开头、结尾,或者完全不写)

符合要求的有效示例

  • 0.00
  • 1.20
  • 10.10
  • 99.99
  • $0.00
  • $1.20
  • 1.20$

被拒绝的无效示例

  • 01.20(含前导零)
  • 10.1(小数位不足两位)
  • .12(无整数部分)
  • 100.00(超出99.99上限)
  • 1(无小数部分)

PHP使用示例

这里给你一个完整的测试代码,直接复制就能运行验证:

<?php
// 用单引号定义正则(推荐写法)
$pattern = '/^\$?([1-9]\d?|0)\.\d{2}\$?$/';

// 测试有效金额
$validAmounts = ['0.00', '1.20', '10.10', '99.99', '$0.00', '$1.20', '1.20$'];
echo "=== 有效金额测试 ===\n";
foreach ($validAmounts as $amount) {
    if (preg_match($pattern, $amount)) {
        echo "✅ $amount 格式正确\n";
    } else {
        echo "❌ $amount 格式错误(预期正确)\n";
    }
}

// 测试无效金额
$invalidAmounts = ['01.20', '10.1', '.12', '100.00', '1', '$100.00'];
echo "\n=== 无效金额测试 ===\n";
foreach ($invalidAmounts as $amount) {
    if (!preg_match($pattern, $amount)) {
        echo "❌ $amount 格式错误(预期正确)\n";
    } else {
        echo "✅ $amount 格式正确(预期错误)\n";
    }
}
?>

内容的提问来源于stack exchange,提问作者Engjëll Bislimi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.20 11:27:50