Получить текстовые значения на основе правил - PullRequest
1 голос
/ 13 марта 2019

У меня есть этот текст:

var dimensions = "12 H x 45.3 W x 16 G"

Теперь я хочу получить значение для H & W. Если не существует H или W, введите значение NULL.

Я пытался как

 var result = str.split("x");
 var h = result[0].replace('H','');
 var w = result[1].replace('W','');

Ожидаемый результат: h = 12, w = 45,3

Проблема в том, что я могу иметь и W сначала и H после:

var dimensions = "45.3 W x 12 H x 16 G"

Ожидаемый результат: h = 12, w = 45,3

Буду признателен за вашу помощь.

Ответы [ 2 ]

4 голосов
/ 13 марта 2019

Вы можете получить независимые значения.

const getValue = (s, p) => (s.match(new RegExp('\\S+(?=\\s+' + p + ')')) || [])[0] || null;

var dimensions = "12 H x 45.3 W x 16 G"

console.log(getValue(dimensions, 'H'));
console.log(getValue(dimensions, 'W'));
console.log(getValue(dimensions, 'G'));
console.log(getValue(dimensions, 'F')); // null
0 голосов
/ 13 марта 2019

Вы можете попробовать это

var dimensions = "12 H x 45.3 W x 16 G"
const rs = dimensions.split('x').reduce((acc,e) => {
  let arr = e.trim().split(' ')
  acc.set(arr[1], arr[0])
  return acc
}, new Map())

console.log('H:', rs.get('H'))
console.log('W:', rs.get('W'))
console.log('E:', rs.get('E') || null)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...