如今有以下需求:电商的颜色,尺码选择,后端给的json如下{ "prop_group": [
{ "prop_id":"color", "prop_value": ["白色","红色"]
},
{ "prop_id":"size", "prop_value": ["S","M","L"]
}
], "prop_stack": [
{ "prop_key":"color:白色;size:S", "stock_num":"10", "is_off":"false"
},
{ "prop_key":"color:白色;size:M", "stock_num":"", "is_off":"true"
},
{ "prop_key":"color:白色;size:L", "stock_num":"4", "is_off":"false"
},
]
}如今要当两个属性都选上的时候,根据prop_stock给出的对应关系来显示出库存情况与是否售罄。我的想法是当尺码,颜色两个都有选择的时候,调用一个function 来去对应关系中查找,如果找到全部匹配的则显示出对应的库存与是否售罄。 function checkProp(prop1, prop2){ var reg = ??? for(var i =0,i<prop_stock.length,i++){ if (reg.test(prop_stock[i].prop_key)){ return prop_stock[i];
}
}
}主要我不知道正则怎么写啊 。。。比如 传入 白色 , S正则表达式要怎样写才能实现同时匹配这两个属性的效果啊?跪求。。很急很关键啊
1 回答
RISEBY
TA贡献1856条经验 获得超5个赞
如果prop_key
格式固定的话,根本不需要正则啊,直接完整字符串比较就行了。
'color:' + prop1 + ';size:' + prop2 === prop_stock[i].prop_key
不过正则可以用来比较 prop
不确定的情况,比如另一件商品没有 size
属性,而是其他什么属性。
var reg = new RegExp('[a-zA-Z]+:' + prop1 + ';[a-zA-Z]+:' + prop2);
[a-zA-Z]
匹配的是大小写字母,如果商品属性不全是大小写字母,有其他符号的话,这里还需要改。
添加回答
举报
0/150
提交
取消