/^\d+\.\d+/
будет соответствовать первым 2 цифрам с точкой между ними.
regex
не придется обрабатывать весь ввод, как это делают подходы split
.
Он также будет ловить последовательно .
, как 30..40
.И пробелы.
Он даже будет захватывать буквенные части, такие как 10.B
Это также будет расширяться, если вы хотите начать разрешать такие сегменты, как -alpha
, -beta
и т. Д.
const rx = /^\d+\.\d+/
const inputs = ['9.1.0', '9.2.0', '9.3.0', '9.10.0',
'10.1.0', , '22.121.130', '10.A', '10..20', '10. 11', '10 .11'];
inputs.forEach(input => {
const m = rx.exec(input)
console.log(input, m ? m[0] : 'not found')
})