我想要日期格式的文本。我能够设法得到2020年3月20日,但它也接受角色
如果我使用/ [^ 0-9] / gi,则在按下宪章后会立即将其删除,但正斜杠也会被删除(我需要正斜杠)。
如果我使用/ [^ 0-9] [//] / gi,那么我会得到正斜杠,但它不限制字符。
我该如何解决
function restrictAlphas(e) {
var invalidcharacters = /[^0-9][/\/]/gi;
var xval = document.getElementById("idcrd").value;
var length = xval.length;
if (length<=10){
if (invalidcharacters.test(xval)) {
newVal= xval.replace(invalidcharacters, "");
document.getElementById("idcrd").value = newVal;
}
else {
if ((length == 2 || length == 5)) {
document.getElementById("idcrd").value = xval + '/';
}
}
}
}
HTML:
<input type ="text" name="crd" id="idcrd" maxlength="10" onkeyup="return restrictAlphas(event)" />
最佳答案
function restrictAlphas(e) {
e.target.value = e.target.value.replace(/[\D]/g, '').replace(/(\d{2})/, "$1/").replace(/(\d{2}\/\d{2})/, "$1/");
}
<input type ="text" name="crd" id="idcrd" maxlength="10" oninput="restrictAlphas(event)" />