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)));
Предложу такой вариант:
^\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));