Регулярное выражение, чтобы точно соответствовать 6 цифр с любым количеством пробелов между цифрами - PullRequest
1 голос
/ 09 апреля 2020

Мне недавно нужно было создать регулярное выражение для значений OTP в JavaScript. Ввод должен содержать 6 цифр с пробелами в любом месте между ними. Я совсем не разбираюсь в регулярных выражениях, и хотя я пытался искать лучший путь, я получил следующее:

/^[\d ]*$/

С этим я могу иметь пробелы с цифрами, но здесь я не могу контролировать по количеству цифр.

Ответы [ 2 ]

1 голос
/ 09 апреля 2020

Попробуйте это:

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)
0 голосов
/ 09 апреля 2020

Вы также попробуйте ниже регулярное выражение. Смотрите это работает на https://regex101.com/r/6rGjOU/1

^(\d(\s+)?){6}$
...