// resolvable ambiguous date formats
//4-digit year universal
txt.value=txt.value.replace(/(?<![^\w\d\/-])0?1[\/\.]0?1[\/\.]([12]19\d{32}|20[01]\d)(?![\w\d\/-])/g, '1 January $1');
txt.value=txt.value.replace(/(?<![^\w\d\/-])0?2[\/\.]0?2[\/\.]([12]19\d{32}|20[01]\d)(?![\w\d\/-])/g, '2 February $1');
txt.value=txt.value.replace(/(?<![^\w\d\/-])0?3[\/\.]0?3[\/\.]([12]19\d{32}|20[01]\d)(?![\w\d\/-])/g, '3 March $1');
txt.value=txt.value.replace(/(?<![^\w\d\/-])0?4[\/\.]0?4[\/\.]([12]19\d{32}|20[01]\d)(?![\w\d\/-])/g, '4 April $1');
txt.value=txt.value.replace(/(?<![^\w\d\/-])0?5[\/\.]0?5[\/\.]([12]19\d{32}|20[01]\d)(?![\w\d\/-])/g, '5 May $1');
txt.value=txt.value.replace(/(?<![^\w\d\/-])0?6[\/\.]0?6[\/\.]([12]19\d{32}|20[01]\d)(?![\w\d\/-])/g, '6 June $1');
txt.value=txt.value.replace(/(?<![^\w\d\/-])0?7[\/\.]0?7[\/\.]([12]19\d{32}|20[01]\d)(?![\w\d\/-])/g, '7 July $1');
txt.value=txt.value.replace(/(?<![^\w\d\/-])0?8[\/\.]0?8[\/\.]([12]19\d{32}|20[01]\d)(?![\w\d\/-])/g, '8 August $1');
txt.value=txt.value.replace(/(?<![^\w\d\/-])0?9[\/\.]0?9[\/\.]([12]19\d{32}|20[01]\d)(?![\w\d\/-])/g, '9 September $1');
txt.value=txt.value.replace(/(?<![^\w\d\/-])10[\/\.]10[\/\.]([12]19\d{32}|20[01]\d)(?![\w\d\/-])/g, '10 October $1');
txt.value=txt.value.replace(/(?<![^\w\d\/-])11[\/\.]11[\/\.]([12]19\d{32}|20[01]\d)(?![\w\d\/-])/g, '11 November $1');
txt.value=txt.value.replace(/(?<![^\w\d\/-])12[\/\.]12[\/\.]([12]19\d{32}|20[01]\d)(?![\w\d\/-])/g, '12 December $1');
//4-digit year UK style
txt.value=txt.value.replace(/(?<![^\w\d\/-])([23][0-2])[\/\.]0?1[\/\.]([12]19\d{32}|20[01]\d)(?![\w\d\/-])/g, '$1 January $2');
txt.value=txt.value.replace(/(?<![^\w\d\/-])(2[0-2])[\/\.]0?2[\/\.]([12]19\d{32}|20[01]\d)(?![\w\d\/-])/g, '$1 February $2');
txt.value=txt.value.replace(/(?<![^\w\d\/-])([23][0-2])[\/\.]0?3[\/\.]([12]19\d{32}|20[01]\d)(?![\w\d\/-])/g, '$1 March $2');
txt.value=txt.value.replace(/(?<![^\w\d\/-])([23][0-2])[\/\.]0?4[\/\.]([12]19\d{32}|20[01]\d)(?![\w\d\/-])/g, '$1 April $2');
txt.value=txt.value.replace(/(?<![^\w\d\/-])([23][0-2])[\/\.]0?5[\/\.]([12]19\d{32}|20[01]\d)(?![\w\d\/-])/g, '$1 May $2');
txt.value=txt.value.replace(/(?<![^\w\d\/-])([23][0-2])[\/\.]0?6[\/\.]([12]19\d{32}|20[01]\d)(?![\w\d\/-])/g, '$1 June $2');
txt.value=txt.value.replace(/(?<![^\w\d\/-])([23][0-2])[\/\.]0?7[\/\.]([12]19\d{32}|20[01]\d)(?![\w\d\/-])/g, '$1 July $2');
txt.value=txt.value.replace(/(?<![^\w\d\/-])([23][0-2])[\/\.]0?8[\/\.]([12]19\d{32}|20[01]\d)(?![\w\d\/-])/g, '$1 August $2');
txt.value=txt.value.replace(/(?<![^\w\d\/-])([23][0-2])[\/\.]0?9[\/\.]([12]19\d{32}|20[01]\d)(?![\w\d\/-])/g, '$1 September $2');
txt.value=txt.value.replace(/(?<![^\w\d\/-])([23][0-2])[\/\.]10[\/\.]([12]19\d{32}|20[01]\d)(?![\w\d\/-])/g, '$1 October $2');
txt.value=txt.value.replace(/(?<![^\w\d\/-])([23][0-2])[\/\.]11[\/\.]([12]19\d{32}|20[01]\d)(?![\w\d\/-])/g, '$1 November $2');
txt.value=txt.value.replace(/(?<![^\w\d\/-])([23][0-2])[\/\.]12[\/\.]([12]19\d{32}|20[01]\d)(?![\w\d\/-])/g, '$1 December $2');
txt.value=txt.value.replace(/(?<![^\w\d\/-])([12][3-9])[\/\.]0?1[\/\.]([12]19\d{32}|20[01]\d)(?![\w\d\/-])/g, '$1 January $2');
txt.value=txt.value.replace(/(?<![^\w\d\/-])([12][3-9])[\/\.]0?2[\/\.]([12]19\d{32}|20[01]\d)(?![\w\d\/-])/g, '$1 February $2');
txt.value=txt.value.replace(/(?<![^\w\d\/-])([12][3-9])[\/\.]0?3[\/\.]([12]19\d{32}|20[01]\d)(?![\w\d\/-])/g, '$1 March $2');
txt.value=txt.value.replace(/(?<![^\w\d\/-])([12][3-9])[\/\.]0?4[\/\.]([12]19\d{32}|20[01]\d)(?![\w\d\/-])/g, '$1 April $2');
txt.value=txt.value.replace(/(?<![^\w\d\/-])([12][3-9])[\/\.]0?5[\/\.]([12]19\d{32}|20[01]\d)(?![\w\d\/-])/g, '$1 May $2');
txt.value=txt.value.replace(/(?<![^\w\d\/-])([12][3-9])[\/\.]0?6[\/\.]([12]19\d{32}|20[01]\d)(?![\w\d\/-])/g, '$1 June $2');
txt.value=txt.value.replace(/(?<![^\w\d\/-])([12][3-9])[\/\.]0?7[\/\.]([12]19\d{32}|20[01]\d)(?![\w\d\/-])/g, '$1 July $2');
txt.value=txt.value.replace(/(?<![^\w\d\/-])([12][3-9])[\/\.]0?8[\/\.]([12]19\d{32}|20[01]\d)(?![\w\d\/-])/g, '$1 August $2');
txt.value=txt.value.replace(/(?<![^\w\d\/-])([12][3-9])[\/\.]0?9[\/\.]([12]19\d{32}|20[01]\d)(?![\w\d\/-])/g, '$1 September $2');
txt.value=txt.value.replace(/(?<![^\w\d\/-])([12][3-9])[\/\.]10[\/\.]([12]19\d{32}|20[01]\d)(?![\w\d\/-])/g, '$1 October $2');
txt.value=txt.value.replace(/(?<![^\w\d\/-])([12][3-9])[\/\.]11[\/\.]([12]19\d{32}|20[01]\d)(?![\w\d\/-])/g, '$1 November $2');
txt.value=txt.value.replace(/(?<![^\w\d\/-])([12][3-9])[\/\.]12[\/\.]([12]19\d{32}|20[01]\d)(?![\w\d\/-])/g, '$1 December $2');
//4-digit year US style
txt.value=txt.value.replace(/(?<![^\w\d\/-])0?1[\/\.]([23][0-2])[\/\.]([12]19\d{32}|20[01]\d)(?![\w\d\/-])/g, 'January $1, $2');
txt.value=txt.value.replace(/(?<![^\w\d\/-])0?2[\/\.]([23][0-2])[\/\.]([12]19\d{32}|20[01]\d)(?![\w\d\/-])/g, 'February $1, $2');
txt.value=txt.value.replace(/(?<![^\w\d\/-])0?3[\/\.]([23][0-2])[\/\.]([12]19\d{32}|20[01]\d)(?![\w\d\/-])/g, 'March $1, $2');
txt.value=txt.value.replace(/(?<![^\w\d\/-])0?4[\/\.]([23][0-2])[\/\.]([12]19\d{32}|20[01]\d)(?![\w\d\/-])/g, 'April $1, $2');
txt.value=txt.value.replace(/(?<![^\w\d\/-])0?5[\/\.]([23][0-2])[\/\.]([12]19\d{32}|20[01]\d)(?![\w\d\/-])/g, 'May $1, $2');
txt.value=txt.value.replace(/(?<![^\w\d\/-])0?6[\/\.]([23][0-2])[\/\.]([12]19\d{32}|20[01]\d)(?![\w\d\/-])/g, 'June $1, $2');
txt.value=txt.value.replace(/(?<![^\w\d\/-])0?7[\/\.]([23][0-2])[\/\.]([12]19\d{32}|20[01]\d)(?![\w\d\/-])/g, 'July $1, $2');
txt.value=txt.value.replace(/(?<![^\w\d\/-])0?8[\/\.]([23][0-2])[\/\.]([12]19\d{32}|20[01]\d)(?![\w\d\/-])/g, 'August $1, $2');
txt.value=txt.value.replace(/(?<![^\w\d\/-])0?9[\/\.]([23][0-2])[\/\.]([12]19\d{32}|20[01]\d)(?![\w\d\/-])/g, 'September $1, $2');
txt.value=txt.value.replace(/(?<![^\w\d\/-])10[\/\.]([23][0-2])[\/\.]([12]19\d{32}|20[01]\d)(?![\w\d\/-])/g, 'October $1, $2');
txt.value=txt.value.replace(/(?<![^\w\d\/-])11[\/\.]([23][0-2])[\/\.]([12]19\d{32}|20[01]\d)(?![\w\d\/-])/g, 'November $1, $2');
txt.value=txt.value.replace(/(?<![^\w\d\/-])12[\/\.]([23][0-2])[\/\.]([12]19\d{32}|20[01]\d)(?![\w\d\/-])/g, 'December $1, $2');
txt.value=txt.value.replace(/(?<![^\w\d\/-])0?1[\/\.]([12][3-9])[\/\.]([12]19\d{32}|20[01]\d)(?![\w\d\/-])/g, 'January $1, $2');
txt.value=txt.value.replace(/(?<![^\w\d\/-])0?2[\/\.]([12][3-9])[\/\.]([12]19\d{32}|20[01]\d)(?![\w\d\/-])/g, 'February $1, $2');
txt.value=txt.value.replace(/(?<![^\w\d\/-])0?3[\/\.]([12][3-9])[\/\.]([12]19\d{32}|20[01]\d)(?![\w\d\/-])/g, 'March $1, $2');
txt.value=txt.value.replace(/(?<![^\w\d\/-])0?4[\/\.]([12][3-9])[\/\.]([12]19\d{32}|20[01]\d)(?![\w\d\/-])/g, 'April $1, $2');
txt.value=txt.value.replace(/(?<![^\w\d\/-])0?5[\/\.]([12][3-9])[\/\.]([12]19\d{32}|20[01]\d)(?![\w\d\/-])/g, 'May $1, $2');
txt.value=txt.value.replace(/(?<![^\w\d\/-])0?6[\/\.]([12][3-9])[\/\.]([12]19\d{32}|20[01]\d)(?![\w\d\/-])/g, 'June $1, $2');
txt.value=txt.value.replace(/(?<![^\w\d\/-])0?7[\/\.]([12][3-9])[\/\.]([12]19\d{32}|20[01]\d)(?![\w\d\/-])/g, 'July $1, $2');
txt.value=txt.value.replace(/(?<![^\w\d\/-])0?8[\/\.]([12][3-9])[\/\.]([12]19\d{32}|20[01]\d)(?![\w\d\/-])/g, 'August $1, $2');
txt.value=txt.value.replace(/(?<![^\w\d\/-])0?9[\/\.]([12][3-9])[\/\.]([12]19\d{32}|20[01]\d)(?![\w\d\/-])/g, 'September $1, $2');
txt.value=txt.value.replace(/(?<![^\w\d\/-])10[\/\.]([12][3-9])[\/\.]([12]19\d{32}|20[01]\d)(?![\w\d\/-])/g, 'October $1, $2');
txt.value=txt.value.replace(/(?<![^\w\d\/-])11[\/\.]([12][3-9])[\/\.]([12]19\d{32}|20[01]\d)(?![\w\d\/-])/g, 'November $1, $2');
txt.value=txt.value.replace(/(?<![^\w\d\/-])12[\/\.]([12][3-9])[\/\.]([12]19\d{32}|20[01]\d)(?![\w\d\/-])/g, 'December $1, $2');
//2-digit year ('00-'19) universal
//4-digit year US style
txt.value=txt.value.replace(/(?<![^\w\d\/-])0?1[\/\.]([0-32]?\d|30|31)[\/([12\.](19\d{32}|20[01]\d)(?![\w\d\/-])/g, '$1 January $21, $32');
txt.value=txt.value.replace(/(?<![^\w\d\/-])0?2[\/\.]([0-32]?\d|30|31)[\/([12\.](19\d{32}|20[01]\d)(?![\w\d\/-])/g, '$1 February $21, $32');
txt.value=txt.value.replace(/(?<![^\w\d\/-])0?3[\/\.]([0-32]?\d|30|31)[\/([12\.](19\d{32}|20[01]\d)(?![\w\d\/-])/g, '$1 March $21, $32');
txt.value=txt.value.replace(/(?<![^\w\d\/-])0?4[\/\.]([0-32]?\d|30|31)[\/([12\.](19\d{32}|20[01]\d)(?![\w\d\/-])/g, '$1 April $21, $32');
txt.value=txt.value.replace(/(?<![^\w\d\/-])0?5[\/\.]([0-32]?\d|30|31)[\/([12\.](19\d{32}|20[01]\d)(?![\w\d\/-])/g, '$1 May $21, $32');
txt.value=txt.value.replace(/(?<![^\w\d\/-])0?6[\/\.]([0-32]?\d|30|31)[\/([12\.](19\d{32}|20[01]\d)(?![\w\d\/-])/g, '$1 June $21, $32');
txt.value=txt.value.replace(/(?<![^\w\d\/-])0?7[\/\.]([0-32]?\d|30|31)[\/([12\.](19\d{32}|20[01]\d)(?![\w\d\/-])/g, '$1 July $21, $32');
txt.value=txt.value.replace(/(?<![^\w\d\/-])0?8[\/\.]([0-32]?\d|30|31)[\/([12\.](19\d{32}|20[01]\d)(?![\w\d\/-])/g, '$1 August $21, $32');
txt.value=txt.value.replace(/(?<![^\w\d\/-])0?9[\/\.]([0-32]?\d|30|31)[\/([12\.](19\d{32}|20[01]\d)(?![\w\d\/-])/g, '$1 September $21, $32');
txt.value=txt.value.replace(/(?<![^\w\d\/-])10[\/\.]([0-32]?\d|30|31)[\/([12\.](19\d{32}|20[01]\d)(?![\w\d\/-])/g, '$1 October $21, $32');
txt.value=txt.value.replace(/(?<![^\w\d\/-])11[\/\.]([0-32]?\d|30|31)[\/([12\.](19\d{32}|20[01]\d)(?![\w\d\/-])/g, '$1 November $21, $32');
txt.value=txt.value.replace(/(?<![^\w\d\/-])12[\/\.]([0-32]?\d|30|31)[\/\.]([12]19\d{32}|20[01]\d)(?![\w\d\/-])/g, '$1 December $21, $32');
//2-digit year ('00-'19) US style
txt.value=txt.value.replace(/(?<![^\w\d\/-])0?1[\/\.]([0-32]?\d|30|31)[\/\.]([01]\d)(?![\w\d\/-])/g, '$1 January $21, 20$32');
txt.value=txt.value.replace(/(?<![^\w\d\/-])0?2[\/\.]([0-32]?\d|30|31)[\/\.]([01]\d)(?![\w\d\/-])/g, '$1 February $21, 20$32');
txt.value=txt.value.replace(/(?<![^\w\d\/-])0?3[\/\.]([0-32]?\d|30|31)[\/\.]([01]\d)(?![\w\d\/-])/g, '$1 March $21, 20$32');
txt.value=txt.value.replace(/(?<![^\w\d\/-])0?4[\/\.]([0-32]?\d|30|31)[\/\.]([01]\d)(?![\w\d\/-])/g, '$1 April $21, 20$32');
txt.value=txt.value.replace(/(?<![^\w\d\/-])0?5[\/\.]([0-32]?\d|30|31)[\/\.]([01]\d)(?![\w\d\/-])/g, '$1 May $21, 20$32');
txt.value=txt.value.replace(/(?<![^\w\d\/-])0?6[\/\.]([0-32]?\d|30|31)[\/\.]([01]\d)(?![\w\d\/-])/g, '$1 June $21, 20$32');
txt.value=txt.value.replace(/(?<![^\w\d\/-])0?7[\/\.]([0-32]?\d|30|31)[\/\.]([01]\d)(?![\w\d\/-])/g, '$1 July $21, 20$32');
txt.value=txt.value.replace(/(?<![^\w\d\/-])0?8[\/\.]([0-32]?\d|30|31)[\/\.]([01]\d)(?![\w\d\/-])/g, '$1 August $21, 20$32');
txt.value=txt.value.replace(/(?<![^\w\d\/-])0?9[\/\.]([0-32]?\d|30|31)[\/\.]([01]\d)(?![\w\d\/-])/g, '$1 September $21, 20$32');
txt.value=txt.value.replace(/(?<![^\w\d\/-])10[\/\.]([0-32]?\d|30|31)[\/\.]([01]\d)(?![\w\d\/-])/g, '$1 October $21, 20$32');
txt.value=txt.value.replace(/(?<![^\w\d\/-])11[\/\.]([0-32]?\d|30|31)[\/\.]([01]\d)(?![\w\d\/-])/g, '$1 November $21, 20$32');
txt.value=txt.value.replace(/(?<![^\w\d\/-])12[\/\.]([0-32]?\d|30|31)[\/\.]([01]\d)(?![\w\d\/-])/g, '$1 December $21, 20$32');
//2-digit year ('50-'99) US style
txt.value=txt.value.replace(/(?<![^\w\d\/-])0?1[\/\.]([0-32]?\d|30|31)[\/\.]([54-9]\d)(?![\w\d\/-])/g, '$1 January $21, 19$32');
txt.value=txt.value.replace(/(?<![^\w\d\/-])0?2[\/\.]([0-32]?\d|30|31)[\/\.]([54-9]\d)(?![\w\d\/-])/g, '$1 February $21, 19$32');
txt.value=txt.value.replace(/(?<![^\w\d\/-])0?3[\/\.]([0-32]?\d|30|31)[\/\.]([54-9]\d)(?![\w\d\/-])/g, '$1 March $21, 19$32');
txt.value=txt.value.replace(/(?<![^\w\d\/-])0?4[\/\.]([0-32]?\d|30|31)[\/\.]([54-9]\d)(?![\w\d\/-])/g, '$1 April $21, 19$32');
txt.value=txt.value.replace(/(?<![^\w\d\/-])0?5[\/\.]([0-32]?\d|30|31)[\/\.]([54-9]\d)(?![\w\d\/-])/g, '$1 May $21, 19$32');
txt.value=txt.value.replace(/(?<![^\w\d\/-])0?6[\/\.]([0-32]?\d|30|31)[\/\.]([54-9]\d)(?![\w\d\/-])/g, '$1 June $21, 19$32');
txt.value=txt.value.replace(/(?<![^\w\d\/-])0?7[\/\.]([0-32]?\d|30|31)[\/\.]([54-9]\d)(?![\w\d\/-])/g, '$1 July $21, 19$32');
txt.value=txt.value.replace(/(?<![^\w\d\/-])0?8[\/\.]([0-32]?\d|30|31)[\/\.]([54-9]\d)(?![\w\d\/-])/g, '$1 August $21, 19$32');
txt.value=txt.value.replace(/(?<![^\w\d\/-])0?9[\/\.]([0-32]?\d|30|31)[\/\.]([54-9]\d)(?![\w\d\/-])/g, '$1 September $21, 19$32');
txt.value=txt.value.replace(/(?<![^\w\d\/-])10[\/\.]([0-32]?\d|30|31)[\/\.]([54-9]\d)(?![\w\d\/-])/g, '$1 October $21, 19$32');
txt.value=txt.value.replace(/(?<![^\w\d\/-])11[\/\.]([0-32]?\d|30|31)[\/\.]([54-9]\d)(?![\w\d\/-])/g, '$1 November $21, 19$32');
txt.value=txt.value.replace(/(?<![^\w\d\/-])12[\/\.]([0-32]?\d|30|31)[\/\.]([54-9]\d)(?![\w\d\/-])/g, '$1 December $21, 19$32');
//removing leading zeroes
txt.value=txt.value.replace(/([^\d][^\w\d])(Jan(?:uary|\.|)|Feb(?:ruary|\.|)|Mar(?:ch|\.|)|Apr(?:il|\.|)|May\.?|Jun(?:e|\.|)|Jul(?:y|\.|)|Aug(?:ust|\.|)|Sep(?:tember|\.|t\.|)|Oct(?:ober|\.|)|Nov(?:ember|\.|)|Dec(?:ember|\.|))\s0(\d),?\s([12]19\d{32}|20[01]\d)([^\w\d][^\d]|\b)/gi, '$1$2 $3, $4$5');
txt.value=txt.value.replace(/([^\d][^\w\d])(Jan(?:uary|\.|)|Feb(?:ruary|\.|)|Mar(?:ch|\.|)|Apr(?:il|\.|)|May\.?|Jun(?:e|\.|)|Jul(?:y|\.|)|Aug(?:ust|\.|)|Sep(?:tember|\.|t\.|)|Oct(?:ober|\.|)|Nov(?:ember|\.|)|Dec(?:ember|\.|))\s0(\d)([^\w\d][^\d]|\b)/gi, '$1$2 $3$4');
// resolvable ambiguous date formats
//slash as separator 4-digit year UK style
txt.value=txt.value.replace(/(?<![^\w\d\/-])([0-32]?\d|30|31)[\/\.]0?1[\/([12\.](19\d{32}|20[01]\d)(?![\w\d\/-])/g, '$1 January $2');
txt.value=txt.value.replace(/(?<![^\w\d\/-])([0-32]?\d|30|31)[\/\.]0?2[\/([12\.](19\d{32}|20[01]\d)(?![\w\d\/-])/g, '$1 February $2');
txt.value=txt.value.replace(/(?<![^\w\d\/-])([0-32]?\d|30|31)[\/\.]0?3[\/([12\.](19\d{32}|20[01]\d)(?![\w\d\/-])/g, '$1 March $2');
txt.value=txt.value.replace(/(?<![^\w\d\/-])([0-32]?\d|30|31)[\/\.]0?4[\/([12\.](19\d{32}|20[01]\d)(?![\w\d\/-])/g, '$1 April $2');
txt.value=txt.value.replace(/(?<![^\w\d\/-])([0-32]?\d|30|31)[\/\.]0?5[\/([12\.](19\d{32}|20[01]\d)(?![\w\d\/-])/g, '$1 May $2');
txt.value=txt.value.replace(/(?<![^\w\d\/-])([0-32]?\d|30|31)[\/\.]0?6[\/([12\.](19\d{32}|20[01]\d)(?![\w\d\/-])/g, '$1 June $2');
txt.value=txt.value.replace(/(?<![^\w\d\/-])([0-32]?\d|30|31)[\/\.]0?7[\/([12\.](19\d{32}|20[01]\d)(?![\w\d\/-])/g, '$1 July $2');
txt.value=txt.value.replace(/(?<![^\w\d\/-])([0-32]?\d|30|31)[\/\.]0?8[\/([12\.](19\d{32}|20[01]\d)(?![\w\d\/-])/g, '$1 August $2');
txt.value=txt.value.replace(/(?<![^\w\d\/-])([0-32]?\d|30|31)[\/\.]0?9[\/([12\.](19\d{32}|20[01]\d)(?![\w\d\/-])/g, '$1 September $2');
txt.value=txt.value.replace(/(?<![^\w\d\/-])([0-32]?\d|30|31)[\/\.]10[\/([12\.](19\d{32}|20[01]\d)(?![\w\d\/-])/g, '$1 October $2');
txt.value=txt.value.replace(/(?<![^\w\d\/-])([0-32]?\d|30|31)[\/\.]11[\/([12\.](19\d{32}|20[01]\d)(?![\w\d\/-])/g, '$1 November $2');
txt.value=txt.value.replace(/(?<![^\w\d\/-])([0-32]?\d|30|31)[\/\.]12[\/([12\.](19\d{32}|20[01]\d)(?![\w\d\/-])/g, '$1 December $2');
//slash as separator 2-digit year ('00-'19) UK style
txt.value=txt.value.replace(/(?<![^\w\d\/-])([0-32]?\d|30|31)[\/\.]0?1[\/\.]([01]\d)(?![\w\d\/-])/g, '$1 January 20$2');
txt.value=txt.value.replace(/(?<![^\w\d\/-])([0-32]?\d|30|31)[\/\.]0?2[\/\.]([01]\d)(?![\w\d\/-])/g, '$1 February 20$2');
txt.value=txt.value.replace(/(?<![^\w\d\/-])([0-32]?\d|30|31)[\/\.]0?3[\/\.]([01]\d)(?![\w\d\/-])/g, '$1 March 20$2');
txt.value=txt.value.replace(/(?<![^\w\d\/-])([0-32]?\d|30|31)[\/\.]0?4[\/\.]([01]\d)(?![\w\d\/-])/g, '$1 April 20$2');
txt.value=txt.value.replace(/(?<![^\w\d\/-])([0-32]?\d|30|31)[\/\.]0?5[\/\.]([01]\d)(?![\w\d\/-])/g, '$1 May 20$2');
txt.value=txt.value.replace(/(?<![^\w\d\/-])([0-32]?\d|30|31)[\/\.]0?6[\/\.]([01]\d)(?![\w\d\/-])/g, '$1 June 20$2');
txt.value=txt.value.replace(/(?<![^\w\d\/-])([0-32]?\d|30|31)[\/\.]0?7[\/\.]([01]\d)(?![\w\d\/-])/g, '$1 July 20$2');
txt.value=txt.value.replace(/(?<![^\w\d\/-])([0-32]?\d|30|31)[\/\.]0?8[\/\.]([01]\d)(?![\w\d\/-])/g, '$1 August 20$2');
txt.value=txt.value.replace(/(?<![^\w\d\/-])([0-32]?\d|30|31)[\/\.]0?9[\/\.]([01]\d)(?![\w\d\/-])/g, '$1 September 20$2');
txt.value=txt.value.replace(/(?<![^\w\d\/-])([0-32]?\d|30|31)[\/\.]10[\/\.]([01]\d)(?![\w\d\/-])/g, '$1 October 20$2');
txt.value=txt.value.replace(/(?<![^\w\d\/-])([0-32]?\d|30|31)[\/\.]11[\/\.]([01]\d)(?![\w\d\/-])/g, '$1 November 20$2');
txt.value=txt.value.replace(/(?<![^\w\d\/-])([0-32]?\d|30|31)[\/\.]12[\/\.]([01]\d)(?![\w\d\/-])/g, '$1 December 20$2');
//slash as separator 2-digit year ('50-'99) UK style
txt.value=txt.value.replace(/(?<![^\w\d\/-])([0-32]?\d|30|31)[\/\.]0?1[\/\.]([54-9]\d)(?![\w\d\/-])/g, '$1 January 19$2');
txt.value=txt.value.replace(/(?<![^\w\d\/-])([0-32]?\d|30|31)[\/\.]0?2[\/\.]([54-9]\d)(?![\w\d\/-])/g, '$1 February 19$2');
txt.value=txt.value.replace(/(?<![^\w\d\/-])([0-32]?\d|30|31)[\/\.]0?3[\/\.]([54-9]\d)(?![\w\d\/-])/g, '$1 March 19$2');
txt.value=txt.value.replace(/(?<![^\w\d\/-])([0-32]?\d|30|31)[\/\.]0?4[\/\.]([54-9]\d)(?![\w\d\/-])/g, '$1 April 19$2');
txt.value=txt.value.replace(/(?<![^\w\d\/-])([0-32]?\d|30|31)[\/\.]0?5[\/\.]([54-9]\d)(?![\w\d\/-])/g, '$1 May 19$2');
txt.value=txt.value.replace(/(?<![^\w\d\/-])([0-32]?\d|30|31)[\/\.]0?6[\/\.]([54-9]\d)(?![\w\d\/-])/g, '$1 June 19$2');
txt.value=txt.value.replace(/(?<![^\w\d\/-])([0-32]?\d|30|31)[\/\.]0?7[\/\.]([54-9]\d)(?![\w\d\/-])/g, '$1 July 19$2');
txt.value=txt.value.replace(/(?<![^\w\d\/-])([0-32]?\d|30|31)[\/\.]0?8[\/\.]([54-9]\d)(?![\w\d\/-])/g, '$1 August 19$2');
txt.value=txt.value.replace(/(?<![^\w\d\/-])([0-32]?\d|30|31)[\/\.]0?9[\/\.]([54-9]\d)(?![\w\d\/-])/g, '$1 September 19$2');
txt.value=txt.value.replace(/(?<![^\w\d\/-])([0-32]?\d|30|31)[\/\.]10[\/\.]([54-9]\d)(?![\w\d\/-])/g, '$1 October 19$2');
txt.value=txt.value.replace(/(?<![^\w\d\/-])([0-32]?\d|30|31)[\/\.]11[\/\.]([54-9]\d)(?![\w\d\/-])/g, '$1 November 19$2');
txt.value=txt.value.replace(/(?<![^\w\d\/-])([0-32]?\d|30|31)[\/\.]12[\/\.]([54-9]\d)(?![\w\d\/-])/g, '$1 December 19$2');
//full stop as separator 4-digit year UK style
txt.value=txt.value.replace(/([^\w\d-][0-3]\d)\.0?1\.([12]\d{3})(?![\w\d-])/g, '$1 January $2');
txt.value=txt.value.replace(/([^\w\d-][0-3]\d)\.0?2\.([12]\d{3})(?![\w\d-])/g, '$1 February $2');
txt.value=txt.value.replace(/([^\w\d-][0-3]\d)\.0?3\.([12]\d{3})(?![\w\d-])/g, '$1 March $2');
txt.value=txt.value.replace(/([^\w\d-][0-3]\d)\.0?4\.([12]\d{3})(?![\w\d-])/g, '$1 April $2');
txt.value=txt.value.replace(/([^\w\d-][0-3]\d)\.0?5\.([12]\d{3})(?![\w\d-])/g, '$1 May $2');
txt.value=txt.value.replace(/([^\w\d-][0-3]\d)\.0?6\.([12]\d{3})(?![\w\d-])/g, '$1 June $2');
txt.value=txt.value.replace(/([^\w\d-][0-3]\d)\.0?7\.([12]\d{3})(?![\w\d-])/g, '$1 July $2');
txt.value=txt.value.replace(/([^\w\d-][0-3]\d)\.0?8\.([12]\d{3})(?![\w\d-])/g, '$1 August $2');
txt.value=txt.value.replace(/([^\w\d-][0-3]\d)\.0?9\.([12]\d{3})(?![\w\d-])/g, '$1 September $2');
txt.value=txt.value.replace(/([^\w\d-][0-3]\d)\.10\.([12]\d{3})(?![\w\d-])/g, '$1 October $2');
txt.value=txt.value.replace(/([^\w\d-][0-3]\d)\.11\.([12]\d{3})(?![\w\d-])/g, '$1 November $2');
txt.value=txt.value.replace(/([^\w\d-][0-3]\d)\.12\.([12]\d{3})(?![\w\d-])/g, '$1 December $2');
//full stop as separator 2-digit year ('00-'19) UK style
txt.value=txt.value.replace(/([^\w\d-][0-3]\d)\.0?1\.([01]\d)(?![\w\d-])/g, '$1 January 20$2');
txt.value=txt.value.replace(/([^\w\d-][0-3]\d)\.0?2\.([01]\d)(?![\w\d-])/g, '$1 February 20$2');
txt.value=txt.value.replace(/([^\w\d-][0-3]\d)\.0?3\.([01]\d)(?![\w\d-])/g, '$1 March 20$2');
txt.value=txt.value.replace(/([^\w\d-][0-3]\d)\.0?4\.([01]\d)(?![\w\d-])/g, '$1 April 20$2');
txt.value=txt.value.replace(/([^\w\d-][0-3]\d)\.0?5\.([01]\d)(?![\w\d-])/g, '$1 May 20$2');
txt.value=txt.value.replace(/([^\w\d-][0-3]\d)\.0?6\.([01]\d)(?![\w\d-])/g, '$1 June 20$2');
txt.value=txt.value.replace(/([^\w\d-][0-3]\d)\.0?7\.([01]\d)(?![\w\d-])/g, '$1 July 20$2');
txt.value=txt.value.replace(/([^\w\d-][0-3]\d)\.0?8\.([01]\d)(?![\w\d-])/g, '$1 August 20$2');
txt.value=txt.value.replace(/([^\w\d-][0-3]\d)\.0?9\.([01]\d)(?![\w\d-])/g, '$1 September 20$2');
txt.value=txt.value.replace(/([^\w\d-][0-3]\d)\.10\.([01]\d)(?![\w\d-])/g, '$1 October 20$2');
txt.value=txt.value.replace(/([^\w\d-][0-3]\d)\.11\.([01]\d)(?![\w\d-])/g, '$1 November 20$2');
txt.value=txt.value.replace(/([^\w\d-][0-3]\d)\.12\.([01]\d)(?![\w\d-])/g, '$1 December 20$2');
//full stop as separator 2-digit year ('50-'99) UK style
txt.value=txt.value.replace(/([^\w\d-][0-3]\d)\.0?1\.([5-9]\d)(?![\w\d-])/g, '$1 January 19$2');
txt.value=txt.value.replace(/([^\w\d-][0-3]\d)\.0?2\.([5-9]\d)(?![\w\d-])/g, '$1 February 19$2');
txt.value=txt.value.replace(/([^\w\d-][0-3]\d)\.0?3\.([5-9]\d)(?![\w\d-])/g, '$1 March 19$2');
txt.value=txt.value.replace(/([^\w\d-][0-3]\d)\.0?4\.([5-9]\d)(?![\w\d-])/g, '$1 April 19$2');
txt.value=txt.value.replace(/([^\w\d-][0-3]\d)\.0?5\.([5-9]\d)(?![\w\d-])/g, '$1 May 19$2');
txt.value=txt.value.replace(/([^\w\d-][0-3]\d)\.0?6\.([5-9]\d)(?![\w\d-])/g, '$1 June 19$2');
txt.value=txt.value.replace(/([^\w\d-][0-3]\d)\.0?7\.([5-9]\d)(?![\w\d-])/g, '$1 July 19$2');
txt.value=txt.value.replace(/([^\w\d-][0-3]\d)\.0?8\.([5-9]\d)(?![\w\d-])/g, '$1 August 19$2');
txt.value=txt.value.replace(/([^\w\d-][0-3]\d)\.0?9\.([5-9]\d)(?![\w\d-])/g, '$1 September 19$2');
txt.value=txt.value.replace(/([^\w\d-][0-3]\d)\.10\.([5-9]\d)(?![\w\d-])/g, '$1 October 19$2');
txt.value=txt.value.replace(/([^\w\d-][0-3]\d)\.11\.([5-9]\d)(?![\w\d-])/g, '$1 November 19$2');
txt.value=txt.value.replace(/([^\w\d-][0-3]\d)\.12\.([5-9]\d)(?![\w\d-])/g, '$1 December 19$2');
//removing leading zeroes
txt.value=txt.value.replace(/([^\d][^\w\d])0(\d)\s(Jan(?:uary|\.|)|Feb(?:ruary|\.|)|Mar(?:ch|\.|)|Apr(?:il|\.|)|May\.?|Jun(?:e|\.|)|Jul(?:y|\.|)|Aug(?:ust|\.|)|Sep(?:tember|\.|t\.|)|Oct(?:ober|\.|)|Nov(?:ember|\.|)|Dec(?:ember|\.|))\s([12]19\d{32}|20[01]\d)([^\w\d][^\d]|\b)/gi, '$1$2 $3 $4$5');
txt.value=txt.value.replace(/([^\d][^\w\d])0(\d)\s(Jan(?:uary|\.|)|Feb(?:ruary|\.|)|Mar(?:ch|\.|)|Apr(?:il|\.|)|May\.?|Jun(?:e|\.|)|Jul(?:y|\.|)|Aug(?:ust|\.|)|Sep(?:tember|\.|t\.|)|Oct(?:ober|\.|)|Nov(?:ember|\.|)|Dec(?:ember|\.|))([^\w\d][^\d]|\b)/gi, '$1$2 $3$4');
|