正则表达式精确匹配 6 位数字,数字之间有任意数量的空格
Regex to match exactly 6 digits with any number of spaces between the digits
我最近需要为 JavaScript 中的 OTP 值创建一个正则表达式。输入应包含 6 位数字,中间有空格。我根本不懂正则表达式,尽管我尝试寻找更好的方法,但我最终得到了这个:
/^[\d ]*$/
有了这个我可以有数字的空格,但在这里我无法控制数字的数量。
试试这个:
let OTPs = [
"123456",
"12345", // Invalid
"1 2345 6",
"1 2 3 4 5 6",
"1 2 3 4 5 6",
"a 2 b 4 5 6" // Invalid
]
let validOTPs = OTPs.filter(otp => otp.match(/^(\d\s*){6}$/g))
console.log(validOTPs)
您也试试下面的正则表达式。看到它在 https://regex101.com/r/6rGjOU/1
工作
^(\d(\s+)?){6}$
我最近需要为 JavaScript 中的 OTP 值创建一个正则表达式。输入应包含 6 位数字,中间有空格。我根本不懂正则表达式,尽管我尝试寻找更好的方法,但我最终得到了这个:
/^[\d ]*$/
有了这个我可以有数字的空格,但在这里我无法控制数字的数量。
试试这个:
let OTPs = [
"123456",
"12345", // Invalid
"1 2345 6",
"1 2 3 4 5 6",
"1 2 3 4 5 6",
"a 2 b 4 5 6" // Invalid
]
let validOTPs = OTPs.filter(otp => otp.match(/^(\d\s*){6}$/g))
console.log(validOTPs)
您也试试下面的正则表达式。看到它在 https://regex101.com/r/6rGjOU/1
工作^(\d(\s+)?){6}$