前端面试题:企业面试真题——17

输入一个或多个车牌号码,多个以逗号分割开,再输入想查询的日期(数字,周几),输出该日期限行的车牌号. 车牌号码有以下要求,如:AD123,12101,车牌号不能全是字母。
* 现在对尾号进行限制:尾号为1,9则周一限行,尾号为2,8则周二限行,尾号为3,7则周三限行 尾号为4,6则周四限行,尾号为5,0的周五限行,周六周日不限行。
*尾号不为数字,则看第4位是否是数字,如果第4位还不是 数字,继续看第3位,以此下去,直到找到有数字的时候止.
* 由于用户不熟悉系统,有可能输入错误车牌, 如车牌不满5位或大于5位、车牌全是字母、没用逗号分割等,如有输入错误情况 一律返回error
* 如输入没有问题则返回限行的车牌号,如没有,刚返回none
输入
一个或多个车牌号码
周几
输出
限行的车牌号,如没有限行的则返回none
样例输入
Y008U,T8899
2
样例输出
Y008U

题目来源:牛客网

<body>
    <input id="carNoList" type="text" placeholder="请输入要查询的车牌号, 多个车牌请用逗号隔开">
    <input id="day" type="text" placeholder="请输入你要查询哪一天" />
    <button onclick="fn()">查询</button>
</body>
	
<script type="text/javascript">
    function fn(){
        //输入的车牌号
        var str = document.getElementById("carNoList").value.trim();
        //星期几
        var num = document.getElementById("day").value;

        var nums = str.split(",");
        //判断输入是否合法
        var isValid = nums.some(function(item){
	    //输入其它非法内容
	    var s1= /[^A-Z0-9]/.test(item)
	    //长度不是5
	    var s2 = item.length!=5
	    //全是字母
	    var s3 = /[A-Z]{5}/.test(item)
            //如果出现任何上述情况, 则提示错误
	    return s1 || s2 || s3;
	})
	if(isValid) alert("输入有误");
			
	console.log( 
	    nums.filter(function(item){
                //获得车辆数字尾号
		var lastnum = item.match(/\d/g).pop();
                //若尾号等于 num 或 10-num , 则限行, num必须小于5, 因为周末不限行
		return lastnum == num || lastnum == (10-num) && num < 6
	    })
	)
    }
</script>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值