Как извлечь значение интергера из одной строки текстового поля в CRM, если оно содержит как целое число, так и строку, используя JavaScript - PullRequest
0 голосов
/ 07 ноября 2019

У меня в приложении есть отдельные текстовые поля, в которых хранятся данные в этом формате (3 года, 4 месяца и 4 дня). Теперь я хочу получить только целую часть из полей и хочу сдать условие, чтобы проверить некоторые критерии.

Может кто-нибудь помочь мне, как этого добиться?

1 Ответ

0 голосов
/ 07 ноября 2019

Если вы предоставили нам точный формат, тогда вы можете попробовать что-то вроде этого.

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 дня. Вы можете узнать и проверить регулярные выражения здесь .

Имейте в виду, что приведенная выше функция очень зависит от формата, который вы точно описали. Любое отклонение вызовет проблемы. В идеале вы должны стремиться получить данные, прежде чем они будут преобразованы в этот формат строки. Но нам нужно увидеть больше вашего кода, чтобы понять, почему вы находитесь в такой ситуации.

...