使用.splice()格式化加拿大邮政编码

JDi*_*522 6 javascript

如果输入错误,我需要正确格式化加拿大邮政编码.

格式为### ###,其中"#"可以是数字或字母,例如:M5R 2G3

我试过这个:(它为测试目的而分手)

  shipping.zip = shipping.zip.toUpperCase().split('')

  shipping.zip = shipping.zip.splice(3, 0, ' ')

  shipping.zip = shipping.zip.join().replace(/,/g, '');
Run Code Online (Sandbox Code Playgroud)

但是当我进入时:

m5r2g3

我明白了:

['M','5','R','2','G','3']

[]

就是这样.我不知道为什么它不起作用.请帮忙.谢谢.

Mat*_*att 6

'm5r2g3'.toUpperCase().replace(/\W/g,'').replace(/(...)/,'$1 ') // "M5R 2G3"
Run Code Online (Sandbox Code Playgroud)

replace(/\W/g,'')去除所有非字母数字字符(包括逗号).