使用正则表达式重新格式化包含英国邮政编码的字符串

Pau*_*yer 5 javascript regex

如何使用Javascript格式化字符串以匹配正则表达式?

我使用的英国邮政编码可以匹配以下任何一种

N1 3LD
EC1A 3AD
GU34 8RR
Run Code Online (Sandbox Code Playgroud)

我有以下正则函数,它正确验证字符串,但我不确定如何使用正则表达式作为掩码格式化EC1A3ADEC1A 3AD/ GU348RRto GU34 8RR/ N13LDto N1 3LD.

我的正则表达式是 /^[A-Za-z]{1,2}[0-9A-Za-z]{1,2}[ ]?[0-9]{0,1}[A-Za-z]{2}$/

谢谢

Bor*_*din 14

如果使用正则表达式/^([A-Z]{1,2}\d{1,2}[A-Z]?)\s*(\d[A-Z]{2})$/,则可以提取邮政编码的两个部分,并使用插入空间重新组装它们.

var list = ['N13LD', 'EC1A3AD', 'GU348RR'];

for (var i = 0; i < list.length; i++) {
  var parts = list[i].match(/^([A-Z]{1,2}\d{1,2}[A-Z]?)\s*(\d[A-Z]{2})$/);
  parts.shift();
  alert(parts.join(' '));
}
Run Code Online (Sandbox Code Playgroud)

产量

N1 3LD
EC1A 3AD
GU34 8RR
Run Code Online (Sandbox Code Playgroud)

  • 谢谢Alnitak,但是我的"没有思考"的评论可能有点轻率并且错误地被误解了.功能性示例允许我同时查看和学习.抱歉,如果你觉得这不是这样做的方式,但是花了几个无用的时间试图拼凑我不理解的各种例子中的东西,这使我能够适应Borodin的例子以满足我的要求.再次感谢您的帮助,非常感谢. (2认同)