我有这段文字:
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
感谢您的帮助。
答案 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)