正则表达式精确匹配 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}$