使用正则表达式验证 Yii 中的十进制数字

发布于 2025-01-03 12:20:36 字数 243 浏览 0 评论 0原文

我已经尝试过

array('Number', 'match', 'pattern'=>'(^\d*\.?\d*[0-9]+\d*$)|(^[0-9]+\d*\.\d*$)'),

,因为我只想允许格式为 1.00、4.34、234.98 的正值,

但我收到此错误

preg_match(): Unknown modifier '|'

I have tried

array('Number', 'match', 'pattern'=>'(^\d*\.?\d*[0-9]+\d*$)|(^[0-9]+\d*\.\d*$)'),

as I want to only allow positive values with the format of 1.00, 4.34, 234.98

I get this error though

preg_match(): Unknown modifier '|'

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

稀香 2025-01-10 12:20:36

您的模式应该用斜杠括起来,即:

array('Number', 'match', 'pattern'=>'(/^\d*\.?\d*[0-9]+\d*$)|(^[0-9]+\d*\.\d*$)/')

Your pattern should be enclosed by slashes, ie:

array('Number', 'match', 'pattern'=>'(/^\d*\.?\d*[0-9]+\d*$)|(^[0-9]+\d*\.\d*$)/')
梦里南柯 2025-01-10 12:20:36

如果您使用 number_format 打印数字,您可以使用:

[['formfield'], 'number', 'numberPattern' => '/(^\d+\,\d+\.\d+$)|(^\d+\.\d+$)/'],

适用于 1,234.56 或 234,56

If you are using number_format to print your numbers you could use:

[['formfield'], 'number', 'numberPattern' => '/(^\d+\,\d+\.\d+$)|(^\d+\.\d+$)/'],

It works with 1,234.56 or 234,56

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文