#javascript #regex
#javascript #регулярное выражение
Вопрос:
Я пытаюсь сопоставить первый набор цифр в следующих примерах.
some stuff (6 out of 10 as a rating)
необходимо вернуть 6
some stuff (2.3 out of 10 as a rating)
необходимо вернуть 2.3
some stuff (10 out of 10 as a rating)
необходимо вернуть 10
Кроме того, иногда строка не будет иметь числа
some stuff but nothing else
Ответ №1:
var match = /d (.d )?/.exec("some stuff (10 out of 10 as a rating)");
alert(match[0]);
d
соответствует любому числителю, 0-9.
соответствует a .?
означает 0 или 1
таким образом, в целом это означает любое количество цифр (0-9), за которым необязательно следует десятичная точка, за которой следует 1 или более цифр.
Как функция:
var getFirstNumber = function(input){
var match = /d (.d )?/.exec(input);
return match[0];
};
Ответ №2:
Вы можете попробовать это 'some stuff (2.3 out of 10 as a rating)'.match(/D*(d.?(d)*)/)[1]