前端随机生成4位数的图形码并进行校验

可以自己封装为组件开箱即用!

效果图:

<!DOCTYPE html>
<!-- 
   * @Date: 2024-11-16 11:30:03
 * @LastEditors: chenyang
 * @E-Mai:2315949399@qq.com
 * @Description:前端图形码校验
 -->
<html>
  <head>
    <meta charset="utf-8" />
    <title></title>
    <style>
      body {
        margin: 0;
        padding: 0;
      }
      #c {
        width: 100px;
        height: 50px;
        background-color: #000000;
        margin: 100px 50%;
      }
      .test {
        width: 100px;
        height: 30px;
        border: #0099ff solid 1.5px;
        border-radius: 15px;
        text-align: center;
        line-height: 30px;
        margin: auto;
        cursor: pointer;
        color: #0099ff;
        opacity: 0.5;
        display: none;
      }
      .test:hover {
        color: white;
        transition: 0.2s all;
        background-color: #0099ff;
      }
    </style>
  </head>
  <body>
    <canvas id="c"></canvas>
    <div class="test">test</div>
    <script>
      let can = document.getElementById('c')
      can.addEventListener('click', function () {
        drawcode()
      })

      function drawcode() {
        let canvas = can.getContext('2d')
        canvas.clearRect(0, 0, can.width, can.height)
        let randoms = []
        canvas.font = 'italic 105px Calibri'
        var code = '1,2,3,4,5,6,7,8,9,A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,U,V,W,X,Y,Z,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,'
        //随机值数组
        let splide = code.split(',')

        // //随机获取数组里的值
        for (var i = 0; i < 4; i++) {
          let rnum = Math.floor(Math.random() * splide.length)
          randoms.push(splide[rnum])
          canvas.beginPath()
          canvas.fillStyle = '#0088FF'
          canvas.fillText(randoms[i], 75 * i, can.height / 2)
          canvas.fill()

          canvas.stroke()
          console.log('这里面是你要进行校验的字符,记得写一个正则不区分大小写', randoms)
        }
      }
      drawcode()
    </script>
  </body>
</html>

  • 10
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值