Ich versuche, eine Funktion schreiben, die Inhalt von Eingabeelement erhalten und versuchen, Zahlen eingegeben in Eingabefeld in MM/YY formatiert. Das Folgende ist eine Lösung, die ich habe, ich möchte die Anzahl der Zeilen reduzieren, die es hat. Kann jemand mir helfen, eine bessere Funktion zu schreiben, um dies zu tun?JavaScript - Regex Kreditkarte Ablaufdatum Autoformat
Wenn Sie dies sehen, fügt es automatisch Schrägstrich ein. Arbeits Demo: https://codepen.io/ermauliks/pen/EXBryQ?editors=1010
function formatString(string) {
return string.replace(
/^([1-9]\/|[2-9])$/g, '0$1/' // To handle 3/ > 03/
).replace(
/^(0[1-9]{1}|1[0-2]{1})$/g, '$1/' // 11 > 11/
).replace(
/^([0-1]{1})([3-9]{1})$/g, '0$1/$2' // 13 > 01/3
).replace(
/^(\d)\/(\d\d)$/g, '0$1/$2' // To handle 1/11 > 01/11
).replace(
/^(0?[1-9]{1}|1[0-2]{1})([0-9]{2})$/g, '$1/$2' // 141 > 01/41
).replace(
/^([0]{1,})\/|[0]{1,}$/g, '0' // To handle 0/ > 0 and 00 > 0
).replace(
/[^\d\/]|^[\/]{0,}$/g, '' // To allow only numbers and/
).replace(
/\/\//g, '/' // Prevent entering more than 1/
);
}
event.target.value = formatString(value);
Wenn Sie Code gearbeitet haben Sie könnten versuchen, hier zu posten: https://codereview.stackexchange.com/ – yuriy636