javascript - JS 正则表达式如何匹配两个字符串?
迷茫
迷茫 2017-04-11 11:23:45
[JavaScript讨论组]

如今有以下需求:

电商的颜色,尺码选择,后端给的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)
大家讲道理

如果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] 匹配的是大小写字母,如果商品属性不全是大小写字母,有其他符号的话,这里还需要改。

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号