在我們的專案中,卡號顯示為“123456789”或屏蔽卡號“*****6789”。卡號長度為9或11。提交前,我們會檢查號碼的有效性。
var regex = /^\*{5}\d{4}|\*{7}\d{4}|\d{9}|\d{11}$/;
有沒有更短的方法可以做到這一點?
謝謝!
uj5u.com熱心網友回復:
假設輸入應該是 9 位或 11 位數字,您可以分兩步完成。首先,使用 驗證輸入test()。然后,屏蔽除最后四位以外的所有數字。
var input = "123456789";
if (/^\d{9}(?:\d{2})?$/.test(input)) {
console.log("VALID");
var masked = input.replace(/\d(?=\d{4,})/g, "*");
console.log("masked input: " masked);
}
uj5u.com熱心網友回復:
您可以單獨驗證長度和值,以使其更易于閱讀。
var input = "123456789";
var validLengths = []
validLengths[9] = true;
validLengths[11] = true;
var regex = /^(\* |\d )\d{4}$/;
var valid = validLengths[input.length] && regex.test(input);
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/310796.html
標籤:javascript 正则表达式
上一篇:洗掉陣列中已經存在的較短的項
