php - 匹配货币格式的任何逗号和点,但不匹配最后一个
问题描述
我想将货币格式转换为十进制,它将作为十进制数据类型存储在数据库中
例子:
12,345.45 to 12345.45
10.000.00 to 10000.00
我已经尝试过这种正则表达式模式/(,|\.)/
,但最后一个点(表示美分值)仍然涉及,我对如何排除最后一个点感到困惑
预期结果,排除给定字符串中的最后一个点
解决方案
使用php
,您可以preg_replace
这样使用:
$repl = preg_replace('/\.(?=\d+\.)|,/', '', $str);
正则表达式详细信息:
\.
: 匹配.
(?=\d+\.)
: 正向前瞻断言我们在 1+ 位之后前面有一个点|
: 或者,
: 匹配一个逗号
推荐阅读
- vue.js - v-on="$listeners" 不更新 nuxt/vuejs 中的 v-model
- node.js - Node.js moongoose 转换为 spring mongotemplate
- ios - 何时使用 UILayoutPriority = .required in setContentCompressionResistancePriority(_ priority: UILayoutPriority, for axis: NSLayoutConstraint.Axis)
- c# - 没有“IEnumerable”类型的 ViewData 项
' 具有键 'BlockHeight' - android - 让 chrome 检查器更快地查看连接的设备应用程序
- javascript - postMessage 没有推入 dataLayer
- php - 在 onchange 上通过 Ajax 传递一个值
- macos - 带有图像的 macOS Big Sur 工具栏项宽度
- css - Google Material 图标指南 - CSS 定义
- c# - 左键单击 DataGridRows 之间切换时未触发 WPF“ContextMenuClosing”事件