我怎样才能重新格式化这个字符串
0 - 32 1994--245
到
032-199-42-45
我试过这个,但我的输出是错误的
['0 - 32 1994--245'].replace(/[- ]/g, '')
.match(/(\d{1,3})/g)
.join('-')
我的输出是
032-199-424-5
我怎样才能重新格式化这个字符串
0 - 32 1994--245
到
032-199-42-45
我试过这个,但我的输出是错误的
['0 - 32 1994--245'].replace(/[- ]/g, '')
.match(/(\d{1,3})/g)
.join('-')
我的输出是
032-199-424-5
正则表达式
(\d{3})(\d{3})(\d{2})(\d{2})
var str = '0 - 32 1994--245'.replace(/[- ]/g, '')
console.log(str.replace(/(\d{3})(\d{3})(\d{2})(\d{2})/, '$1-$2-$3-$4'))
演示:
您可以删除所有非数字并按三位或两位数分组。
var string = '0 - 32 1994--245',
result = string
.replace(/\D+/g, '')
.match(/.{2,3}(?=..)|.+/g)
.join('-');
console.log(result);