语音菜价录入助手

借助手机输入法语音输入功能,对输入文字进行格式化后保存,大大提高菜价的录入速度。



<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>语音菜价录入助手</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<script src="//code.jquery.com/jquery-1.12.4.min.js"></script>
</head>

<body>
    <!-- (输入示例:花菜3.0元、洋葱250克0.7元) -->
    <input id="caijia" type="text" style="width:150px;" />
    <div id="msg"></div>

    <script type="text/javascript">        
        var outFormat = "{name},{price}元/{weight}克"; //输出格式
        $(document).ready(function(){            
            var arrCai = []; //菜品列表
            //监听输入
            $("#caijia").bind('input propertychange', function() {
                var val = $("#caijia").val();
                if(val.indexOf("元") != -1){
                    var detail = parseCaiDetail(val);
                    if(detail.length == 3){
                        //alert(val + "\r\n" + detail.join(","));
                        var info = outFormat.replace("{name}", detail[0]).replace("{price}", detail[2]).replace("{weight}", detail[1]);
                        if(arrCai.join("").indexOf(detail[0]) == -1){
                            arrCai.push(info);
                        }else{
                            for(var i=0;i<arrCai.length;i++){
                                if(arrCai[i].indexOf(detail[0]) != -1){
                                    arrCai[i] = info;
                                }
                            }
                        }
                        
                        $("#msg").html(arrCai.join("<br/>"));
                        $("#caijia").val("");
                    }
                }            
                
            })
            //解析菜品价格
            var parseCaiDetail = function(str){
                var result = [];
                str = str.replace(/\s+(\d+元)/g, ".$1"); //fix:解决小数点丢失问题
                str = str.replace(/[ 。]/g, "");
                if(str.indexOf("克") != -1){
                    var match = str.match(/([^\d]+)([\.\d]+)克([\.\d]+)元/);
                    if(match.length == 4){
                        result[0] = match[1];
                        result[1] = match[2];
                        result[2] = match[3];
                    }
                }else{
                    var match = str.match(/([^\d]+)([\.\d]+)元/);
                    if(match.length == 3){
                        result[0] = match[1];
                        result[1] = "500";
                        result[2] = match[2];
                    }
                }                
                return result;
            }
        });
    </script>
</body>
</html>


评论: 0 | 引用: 0 | 查看次数: 1792
发表评论
登录后再发表评论!