value.replace正则校验保留两位小数,并且想支持中英文小数点
时间: 2025-02-09 22:17:06 浏览: 65
如果你想同时支持中英文小数点并保留两位小数,你可以先通过正则表达式匹配小数点,然后使用`.replace()`方法将其替换为英文点,最后再格式化成保留两位的小数。以下是一个示例:
```javascript
function formatNumberWithLocaleAndDecimals(value) {
const formatRegex = /^(-?\d+)(\.\d{1,2})?$/; // 匹配整数部分、可能存在的英文或中文小数点以及最多两位小数
// 提取整数和小数部分
const match = value.match(formatRegex);
let num = match[1];
let decimalPart = match[2] || '0';
// 将中文小数点替换为英文点
if (match[2] && !value.includes('.')) {
num += '.';
decimalPart = decimalPart.replace(/[\u3002\.\uff0c]+/, '.');
}
// 格式化小数部分为两位
decimalPart = decimalPart.toFixed(2);
// 组合结果
return `${num}${decimalPart}`;
}
// 示例用法
console.log(formatNumberWithLocaleAndDecimals('123·456')); // 输出 "123.46"
```
这个函数首先尝试匹配输入值的格式,如果存在中文小数点,它会将其转换为英文点,然后再进行保留两位小数的操作。
阅读全文
相关推荐


















