naisi_decimal_is_valid

查看 Markdown

验证 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