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

6
我需要正确格式化加拿大邮政编码,如果输入错误。
格式为### ###,其中“#”可以是数字或字母,例如:M5R 2G3。
我已经尝试过以下方法:(为了测试目的而分开)
  shipping.zip = shipping.zip.toUpperCase().split('')

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

  shipping.zip = shipping.zip.join().replace(/,/g, '');

但是当我输入:

m5r2g3

我得到了这个结果:

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

[ ]

就是这样。我不知道为什么它不能工作。请帮忙。谢谢。

1个回答

9
'm5r2g3'.toUpperCase().replace(/\W/g,'').replace(/(...)/,'$1 ') // "M5R 2G3"
< p > replace(/\W/g,'')会删除所有非字母数字字符(包括逗号)。


天啊,蝙蝠侠,那真是令人印象深刻的简单。我需要提高我的正则表达式技能。谢谢。 - JDillon522

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接