js регулярные выражения

мне нужно проверить инпут на ввод, вводится могу только цифры точка и точка с запятой, то есть такой формат норм "34.34;", а это уже ошибка "34#dgf", подскажите как написать регулярку, а вообще если так можно чтобы определить что формат именно такой 7.1;8.2;9.3 или 4;5.4;0; то есть есть цифры и они разделены ; но при этом цифры могут быть дробными, но это уже из области не боязательно, главное как определить цифры точка и точка с запятой, а если вводит например буквы, то регулярка должна возвращать фолс ну или пустую строку или пустой массив, я нашел что-то console.log('regExp: ', regExp.match(/\d{0,9}/)); здесь я проверяю на цифры, вот как туда добавить точку и точку с запятой и главное выдавать фолс или пустую строку если вдруг введется что-то другое?


Ответы (2 шт):

Автор решения: Алексей Р

function isfit(str){
    if (str.match(/^(?:\d+(?:\.\d+)?(?:;|$))+$/)) return str;
    else return false
}

let tests = ['7.1;8.2;9.3;4;5.4;0', '7.1;8.2;9.3', '400,15', '150', '400;', '148.45;150.','1111.222.33.4']
tests.forEach(element => console.log(isfit(element)));

→ Ссылка
Автор решения: ipatev_nn

Предложу такой вариант:

^\d+(?:\.\d+)?(?:;\d+(?:\.\d+)?)*;?$

^ - начало строки
\d+ - одна и более цифра подряд
(?:\.\d+)? - не захватываемая группа с квантификатором 0 или 1 совпадение
(?:;\d+(?:\.\d+)?)* - символ ; далее аналогично первой части с квантификатором 0 и более совпадений
;?$ - необязательная точка с запятой и конец строки

Пример:

const reg = /^\d+(?:\.\d+)?(?:;\d+(?:\.\d+)?)*;?$/gm;
const str = `123.21.12
23,21,12
123.11;
123.12
1.2;3.4;4.5;
1.;2;
1.
3;2;2.0`;

console.log(str.match(reg));

→ Ссылка