var inputPostcode:String = " e c 1 r 5 d w ";
trace("inputPostcode: "+inputPostcode);
var checkedPostcode:String = validateUkPostcode(inputPostcode).toUpperCase();
if (checkedPostcode == "") {
trace("No valid postcode was found");
} else {
trace("checkedPostcode: "+checkedPostcode);
}
function validateUkPostcode(str:String):String {
var returnString:String;
var withNoSpaces:String = str.split(" ").join("");
var outwardCode:String = withNoSpaces.substring(0, withNoSpaces.length-3);
var inwardCode:String = withNoSpaces.substring(withNoSpaces.length-3, withNoSpaces.length);
var formatted:String = outwardCode + " " + inwardCode;
str = formatted.replace(/^\s+|\s+$/g, "");
var pattern:RegExp = /[A-Z]{1,2}[0-9R][0-9A-Z]? [0-9][ABD-HJLNP-UW-Z]{2}/i;
var result:Object = pattern.exec(str);
if(result == null) {
returnString = "";
} else {
returnString = result[0];
}
return returnString;
}
// OUTPUT
// inputPostcode: e c 1 r 5 d w
// checkedPostcode: EC1R 5DW