字符串替换问题?

'1,000,000.00'

'1.000.000,00'

背景:有一些国家小数点和千分位使用习惯与我们相反

如果用字符串 replace 怎么替换呢?

阅读 2k
4 个回答
'1,000,000.00'.replace(/,|\./g, val=>{
    if(val==='.') return ','
    return '.'
})

来个花里胡哨的,哈哈 😎

'1,000,000.00'.replace(/([.,])/g, v => ',.'[+(v === ',')])
// 1.000.000,00

'1.000.000,00'.replace(/([.,])/g, v => ',.'[+(v === ',')])
//'1,000,000.00'

先拆分,正则替换,再合并

var arr = '1,000.00'.split('.').map(item=>{
    return item.replace(/\,/g, '.')
})
console.log(arr.join(',')) -> '1.000,00'

别逗楼主了,还是好好答一下吧。
你必须有一个机制来识别用户是用的哪种方式(比如选择自己的母语),这就是为什么需要intl这种东西的原因。字符转换本身不是问题,而是你怎么知道1.005和1,005到底是多少呢?

嗯,应该说不存在字符替换的问题的,因为数据存储的时候一定是无格式的数字,只是根据用户的设置显示为哪种形式而已。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题