Если вы предоставили нам точный формат, тогда вы можете попробовать что-то вроде этого.
let exampleString = "3 years, 4 Months and 4 days";
const extractYMD = (input) => {
const stringArray = input.split(' ');
//split the string on every space
//it will create an array that looks like this
//["3", "years,", "4", "Months", "and", "4", "days"]
//then you can use the index to find your ints
const years = parseInt(stringArray[0])
const months = parseInt(stringArray[2])
const days = parseInt(stringArray[5])
//using parseInt because values inside the array are still strings
//don't need to assign to variables but did it for clarity
if(years <= 3){
console.log('example condition')
//do something here
}
console.log(years, months, days)
//logging to console so you can see output
return [years, months, days];
// return the values if you need them for something
};
extractYMD(exampleString);
Использование regex, как предлагали другие, также является вариантом, но есть риск, что вы получите результат, например 324, и вы не узнаете, 32 года и 4 дня. или 3 месяца и 24 дня. Вы можете узнать и проверить регулярные выражения здесь .
Имейте в виду, что приведенная выше функция очень зависит от формата, который вы точно описали. Любое отклонение вызовет проблемы. В идеале вы должны стремиться получить данные, прежде чем они будут преобразованы в этот формат строки. Но нам нужно увидеть больше вашего кода, чтобы понять, почему вы находитесь в такой ситуации.