Search the Community
Showing results for tags 'format'.
-
Hi there I have spent hours trawling but cannot find this answer so apologise if someone has already asked it. Have 2.3.4bs with php 5.4.45 Using Paypay express paypal spp 5.018 Have had issues with county and cost of shipping so moving over to use postcodes within the UK My site requires postcode to be in the format of AA99 9AA or A99 9AA, ie 6 or 6 digits but with a space before the last 3 If someone creates a account on the site it formats it in this way using a modified expression in catalog/includes/form_check.php check_input("street_address", <?php echo ENTRY_STREET_ADDRESS_MIN_LENGTH; ?>, "<?php echo ENTRY_STREET_ADDRESS_ERROR; ?>"); if (form.elements['country'].value == 222) { testPostCode (); } function checkPostCode (toCheck) { // Permitted letters depend upon their position in the postcode. var alpha1 = "[abcdefghijklmnoprstuwyz]"; // Character 1 var alpha2 = "[abcdefghklmnopqrstuvwxy]"; // Character 2 var alpha3 = "[abcdefghjkstuw]"; // Character 3 var alpha4 = "[abehmnprvwxy]"; // Character 4 var alpha5 = "[abdefghjlnpqrstuwxyz]"; // Character 5 // Array holds the regular expressions for the valid postcodes var pcexp = new Array (); // Expression for postcodes: AN NAA, ANN NAA, AAN NAA, and AANN NAA pcexp.push (new RegExp ("^(" + alpha1 + "{1}" + alpha2 + "?[0-9]{1,2})(\\s*)([0-9]{1}" + alpha5 + "{2})$","i")); // Expression for postcodes: ANA NAA pcexp.push (new RegExp ("^(" + alpha1 + "{1}[0-9]{1}" + alpha3 + "{1})(\\s*)([0-9]{1}" + alpha5 + "{2})$","i")); // Expression for postcodes: AANA NAA pcexp.push (new RegExp ("^(" + alpha1 + "{1}" + alpha2 + "?[0-9]{1}" + alpha4 +"{1})(\\s*)([0-9]{1}" + alpha5 + "{2})$","i")); // Exception for the special postcode GIR 0AA pcexp.push (/^(GIR)(\s*)(0AA)$/i); // Standard BFPO numbers pcexp.push (/^(bfpo)(\s*)([0-9]{1,4})$/i); // c/o BFPO numbers pcexp.push (/^(bfpo)(\s*)(c\/o\s*[0-9]{1,3})$/i); // Load up the string to check var postCode = toCheck; // Assume we're not going to find a valid postcode var valid = false; // Check the string against the types of post codes for ( var i=0; i<pcexp.length; i++) { if (pcexp[i].test(postCode)) { // The post code is valid - split the post code into component parts pcexp[i].exec(postCode); // Copy it back into the original string, converting it to uppercase and // inserting a space between the inward and outward codes postCode = RegExp.$1.toUpperCase() + " " + RegExp.$3.toUpperCase(); // If it is a BFPO c/o type postcode, tidy up the "c/o" part postCode = postCode.replace (/C\/O\s*/,"c/o "); // Load new postcode back into the form element valid = true; // Remember that we have found that the code is valid and break from loop break; } } // Return with either the reformatted valid postcode or the original invalid // postcode if (valid) {return postCode;} else return false; } function testPostCode () { var toCheck = form.elements['postcode'].value; if (checkPostCode (toCheck)) { form.elements['postcode'].value = checkPostCode (toCheck); } else { error_message = error_message + "* " + "Your postcode is invalid" + "\n"; error = true; } } But this is not used by the paypal app so if a UK customer dos not have a space in there paypal account the shipping quote fails Is there a way of ensuring the API converts it to the correct format on the fly? Thank you David