naisi_decimal_is_valid
验证 ASCII 十进制文本及最大小数位数,不转换数值或限制业务金额范围。
必须有整数部分,允许前导零;有小数点时后面必须有数字。不 trim、不舍入, 拒绝正号、指数、空白、空串、NUL 和非 ASCII 数字。需要本请求已有有效许可证明。
函数签名
function naisi_decimal_is_valid(string $value, int $max_decimal_places = 2, bool $allow_negative = false): bool
调用前提
应用入口先调用 naisi_is_ext_license_valid 并确认返回 true。只验证同一请求内已有的有效 FULL/BASIC 证明;没有证明或证明失效时立即返回失败值,不现场补做完整校验。
授权类别:LICENSE;执行模式:PROOF。需要 DATA capability;格式校验不代替登录或业务权限检查。
参数
$value
- 类型:
string - 必填:是
- 默认值:无
- 方向:输入参数。
十进制文本,例如 0001.20;整数部分长度不限。
$max_decimal_places
- 类型:
int - 必填:否
- 默认值:
2 - 方向:输入参数。
最大小数位数,默认 2;0 仅允许整数,负数无效。
$allow_negative
- 类型:
bool - 必填:否
- 默认值:
false - 方向:输入参数。
是否允许前置负号,默认 false;开启后包括 -0、-0.00。
返回值
类型:bool
格式及精度均符合要求时返回 true;未授权、参数无效或验证失败返回 false。
调用示例
当前请求须先完成许可验证,以下成功结果以授权通过为前提。
var_dump(naisi_decimal_is_valid('0001.20')); // true
var_dump(naisi_decimal_is_valid('-0', 0, true)); // true
var_dump(naisi_decimal_is_valid('1.234')); // false
版本信息
- 实现模块:
validation - 授权类别:
LICENSE/PROOF - 失败回退:
false - 文档同步:
2026-10-18