根据规则获取文本值

Get text values based on rules

我有这段文字:

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

非常感谢你的帮助。

你可以获得独立的值。

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

你可以试试这个

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)