木子屋 Dnawo's BLOG

语音菜价录入助手

👤 dnawo 📅 2020-04-23 👁 2844 👍 0 💬 0 🔄 来源:本站原创
借助手机输入法语音输入功能,对输入文字进行格式化后保存,大大提高菜价的录入速度。

图片

<!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)

暂无评论。

验证码
评论需审核通过后显示
← 上一篇 Javascript复制粘贴脚本库clipboard.js使用示… 下一篇 → 保存微信和支付宝收款码二维码图片自己打印流程图解