File: /var/www/vhosts/uyarreklam.com.tr/httpdocs/is-postcode.ts.tar
plugins/woocommerce/packages/woocommerce-blocks/packages/checkout/utils/validation/is-postcode.ts 0000644 00000002276 15155572562 0042004 0 ustar 00 var/www/vhosts/uyarreklam.com.tr/httpdocs/wp-content /**
* External dependencies
*/
import { POSTCODE_REGEXES } from 'postcode-validator/lib/cjs/postcode-regexes.js';
const CUSTOM_REGEXES = new Map< string, RegExp >( [
[ 'BA', /^([7-8]{1})([0-9]{4})$/ ],
[
'GB',
/^([A-Z]){1}([0-9]{1,2}|[A-Z][0-9][A-Z]|[A-Z][0-9]{2}|[A-Z][0-9]|[0-9][A-Z]){1}([ ])?([0-9][A-Z]{2}){1}|BFPO(?:\s)?([0-9]{1,4})$|BFPO(c\/o[0-9]{1,3})$/i,
],
[ 'IN', /^[1-9]{1}[0-9]{2}\s{0,1}[0-9]{3}$/ ],
[ 'JP', /^([0-9]{3})([-]?)([0-9]{4})$/ ],
[ 'LI', /^(94[8-9][0-9])$/ ],
[ 'NL', /^([1-9][0-9]{3})(\s?)(?!SA|SD|SS)[A-Z]{2}$/i ],
[ 'SI', /^([1-9][0-9]{3})$/ ],
[ 'KH', /^[0-9]{6}$/ ], // Cambodia (6-digit postal code)
] );
const DEFAULT_REGEXES = new Map< string, RegExp >( [
...POSTCODE_REGEXES,
...CUSTOM_REGEXES,
] );
export interface IsPostcodeProps {
postcode: string;
country: string;
}
const isPostcode = ( { postcode, country }: IsPostcodeProps ): boolean => {
// If the country is not in the list of regexes, trying to test it would result in an error, so we skip and assume
// that it is valid.
const postcodeTest = DEFAULT_REGEXES.get( country )?.test( postcode );
return typeof postcodeTest !== 'undefined' ? postcodeTest : true;
};
export default isPostcode;
woocommerce/packages/woocommerce-blocks/packages/checkout/utils/validation/test/is-postcode.ts 0000644 00000010275 15156014725 0042752 0 ustar 00 var/www/vhosts/uyarreklam.com.tr/httpdocs/wp-content/plugins /**
* Internal dependencies
*/
import isPostcode from '../is-postcode';
import type { IsPostcodeProps } from '../is-postcode';
describe( 'isPostcode', () => {
const cases = [
// Austrian postcodes
[ true, '1000', 'AT' ],
[ true, '9999', 'AT' ],
[ false, '0000', 'AT' ],
[ false, '10000', 'AT' ],
// Bosnian postcodes
[ true, '71000', 'BA' ],
[ true, '78256', 'BA' ],
[ true, '89240', 'BA' ],
[ false, '61000', 'BA' ],
[ false, '7850', 'BA' ],
// Belgian postcodes
[ true, '1111', 'BE' ],
[ false, '111', 'BE' ],
[ false, '11111', 'BE' ],
// Brazilian postcodes
[ true, '99999-999', 'BR' ],
[ true, '99999999', 'BR' ],
[ false, '99999 999', 'BR' ],
[ false, '99999-ABC', 'BR' ],
// Canadian postcodes
[ true, 'A9A 9A9', 'CA' ],
[ true, 'A9A9A9', 'CA' ],
[ true, 'a9a9a9', 'CA' ],
[ false, 'D0A 9A9', 'CA' ],
[ false, '99999', 'CA' ],
[ false, 'ABC999', 'CA' ],
[ false, '0A0A0A', 'CA' ],
// Swiss postcodes
[ true, '9999', 'CH' ],
[ false, '99999', 'CH' ],
[ false, 'ABCDE', 'CH' ],
// Czech postcodes
[ true, '160 00', 'CZ' ],
[ true, '16000', 'CZ' ],
[ false, '1600', 'CZ' ],
// German postcodes
[ true, '01234', 'DE' ],
[ true, '12345', 'DE' ],
[ false, '12 345', 'DE' ],
[ false, '1234', 'DE' ],
// Spanish postcodes
[ true, '03000', 'ES' ],
[ true, '08000', 'ES' ],
[ false, '08 000', 'ES' ],
[ false, '1234', 'ES' ],
// French postcodes
[ true, '01000', 'FR' ],
[ true, '99999', 'FR' ],
[ true, '01 000', 'FR' ],
[ false, '1234', 'FR' ],
// British postcodes
[ true, 'AA9A 9AA', 'GB' ],
[ true, 'A9A 9AA', 'GB' ],
[ true, 'A9 9AA', 'GB' ],
[ true, 'A99 9AA', 'GB' ],
[ true, 'AA99 9AA', 'GB' ],
[ true, 'BFPO 801', 'GB' ],
[ false, '99999', 'GB' ],
[ false, '9999 999', 'GB' ],
[ false, '999 999', 'GB' ],
[ false, '99 999', 'GB' ],
[ false, '9A A9A', 'GB' ],
// Hungarian postcodes
[ true, '1234', 'HU' ],
[ false, '123', 'HU' ],
[ false, '12345', 'HU' ],
// Irish postcodes
[ true, 'A65F4E2', 'IE' ],
[ true, 'A65 F4E2', 'IE' ],
[ true, 'A65-F4E2', 'IE' ],
[ false, 'B23F854', 'IE' ],
// Indian postcodes
[ true, '110001', 'IN' ],
[ true, '110 001', 'IN' ],
[ false, '11 0001', 'IN' ],
[ false, '1100 01', 'IN' ],
// Italian postcodes
[ true, '99999', 'IT' ],
[ false, '9999', 'IT' ],
[ false, 'ABC 999', 'IT' ],
[ false, 'ABC-999', 'IT' ],
[ false, 'ABC_123', 'IT' ],
// Japanese postcodes
[ true, '1340088', 'JP' ],
[ true, '134-0088', 'JP' ],
[ false, '1340-088', 'JP' ],
[ false, '12345', 'JP' ],
[ false, '0123', 'JP' ],
// Lichtenstein postcodes
[ true, '9485', 'LI' ],
[ true, '9486', 'LI' ],
[ true, '9499', 'LI' ],
[ false, '9585', 'LI' ],
[ false, '9385', 'LI' ],
[ false, '9475', 'LI' ],
// Dutch postcodes
[ true, '3852GC', 'NL' ],
[ true, '3852 GC', 'NL' ],
[ true, '3852 gc', 'NL' ],
[ false, '3852SA', 'NL' ],
[ false, '3852 SA', 'NL' ],
[ false, '3852 sa', 'NL' ],
// Polish postcodes
[ true, '00-001', 'PL' ],
[ true, '99-440', 'PL' ],
[ false, '000-01', 'PL' ],
[ false, '994-40', 'PL' ],
[ false, '00001', 'PL' ],
[ false, '99440', 'PL' ],
// Puerto Rican postcodes
[ true, '00901', 'PR' ],
[ true, '00617', 'PR' ],
[ true, '00602-1211', 'PR' ],
[ false, '1234', 'PR' ],
[ false, '0060-21211', 'PR' ],
// Portuguese postcodes
[ true, '1234-567', 'PT' ],
[ true, '2345-678', 'PT' ],
[ false, '123-4567', 'PT' ],
[ false, '234-5678', 'PT' ],
// Slovenian postcodes
[ true, '1234', 'SI' ],
[ true, '1000', 'SI' ],
[ true, '9876', 'SI' ],
[ false, '12345', 'SI' ],
[ false, '0123', 'SI' ],
// Slovak postcodes
[ true, '010 01', 'SK' ],
[ true, '01001', 'SK' ],
[ false, '01 001', 'SK' ],
[ false, '1234', 'SK' ],
[ false, '123456', 'SK' ],
// United States postcodes
[ true, '90210', 'US' ],
[ true, '99577-0727', 'US' ],
[ false, 'ABCDE', 'US' ],
[ false, 'ABCDE-9999', 'US' ],
// Cambodian postcodes
[ false, '12345', 'KH' ],
[ false, '1234', 'KH' ],
[ true, '123456', 'KH' ],
];
test.each( cases )( '%s: %s for %s', ( result, postcode, country ) =>
expect( isPostcode( { postcode, country } as IsPostcodeProps ) ).toBe(
result
)
);
} );