The output format is displayed directly to the left of the field.
The input can be in ANY format.
If the month is a number & the day is less than 13 then the script assumes that the day & month are in the same order as the output order.

It no longer has any issues with Firefox not correctly finding the date.

DD\MMMM\YYYY:  DD/MMM/YYYY: 
DD\YYYY\MMMM:  DD/YYYY/MMM: 
MMMM\DD\YYYY:  MMM/DD/YYYY: 
MMMM\YYYY\DD:  MMM/YYYY/DD: 
YYYY\DD\MMMM:  YYYY/DD/MMM: 
YYYY\MMMM\DD:  YYYY/MMM/DD: 
DD-MM-YYYY:  D M YYYY: 
DD-YYYY-MM:  D YYYY M: 
MM-DD-YYYY:  M D YYYY: 
MM-YYYY-DD:  M YYYY D: 
YYYY-DD-MM:  YYYY D M: 
YYYY-MM-DD:  YYYY M D: 

Here is an example of how the function is called from the form field that needs date validation.

Here is an example of validating it on submission.

It can be loaded in the onSubmit event handler for the form.