根据规则获取文本值

时间:2019-03-13 14:57:00

标签: javascript jquery jquery-ui

我有这段文字:

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 个答案:

答案 0 :(得分:4)

您可以获得独立的值。

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

答案 1 :(得分:0)

您可以尝试

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)