微信小程序 picker选择器 表单验证 源码

2023-11-19

微信小程序表单验证(这是自己写的,比较low,下篇附上公司大佬的源码,嘿嘿)

所在城市带选择城市的功能

比较懒笨,附上的代码是完整的,把接口数据换成自己的就可以用了,样式需要自己调,请在评论区夸我 !!!

 

附上要用的API的路径  https://developers.weixin.qq.com/miniprogram/dev/component/picker.html?search-key=picker

附上的源码功能比较多,比较混乱

 

功能:所在城市不能手写,要从后台服务器拿到数据选择城市,当选中城市时,选中的值替换掉input中的值

思路:这里主要使用picker选择器,

1.在js中定义index2,初始值为空

/*** 页面的初始数据*/

data: { index2: '',//城市下标 },

2.当选中的城市改变时,触发bindPickerzone事件,value的值也随之变化,

   此时需要在bindPickerzone事件中把新的value值赋给index2,

//所在城市选择

bindPickerzone: function (e) {

     console.log('picker发送选择改变,携带值为', e.detail.value)

     this.setData({

         index2: e.detail.value

     })

},

3.返回前端input框,将拿到的下标对应的元素值显示出来即可

<picker bindchange="bindPickerzone" value="{{index2}}" range="{{userZoneList}}">

    <input class='fl' type='text' placeholder='所在城市' placeholder-class='place' name="city" disabled='disabled'                                value='{{userZoneList[index2]}}'></input>

    <text class='fr m_t5 grayb'style='margin-right:20rpx;'>﹀</text>

    <view class='cl'></view>

</picker>

小程序前端布局

<!--pages/activity/signup/signup.wxml-->
<!-- banner图 -->
<view class='bg_white' style='padding-bottom:30rpx;'>
  <image src='/images/actbanner.jpg' style='width:100%;height:220rpx;'></image>
</view>
<!-- 表单主要内容 -->
<view class='p_b20' style='width:90%;margin:0 auto;'>
  <form bindsubmit="formSubmit">
    <view class='addview20' style='padding-bottom:90rpx;'>
      <view class='bg_white font14 gray5 p_all10 p_b20'style='width:95%;margin 0 auto;padding-top:20rpx;'>
        <view class='inputstyle'>
          <picker bindchange="bindPickerzone" value="{{index2}}" range="{{userZoneList}}">
            <input class='fl' type='text' placeholder='所在城市' placeholder-class='place' name="city" disabled='disabled' value='{{userZoneList[index2]}}'></input>
            <text class='fr m_t5 grayb'style='margin-right:20rpx;'>﹀</text>
            <view class='cl'></view>
          </picker>
        </view>
        <input type='number' class='inputstyle' placeholder-class='place' name="area" placeholder='房屋面积(㎡)'></input>
        <input type='number' class='inputstyle' maxlength='11' placeholder-class='place' name="phoneNumber" placeholder='手机号'></input>
        <input type='text' class='inputstyle' placeholder-class='place' name="userName" placeholder='姓名'></input>
      </view>
      <!-- 正文内容 -->
      <view class='p_lr15' wx:if="{{content.length > 0}}">
        <view class='contentView' wx:for="{{content}}">
          <view class='m_t30 pr' wx:if="{{item.name == 'img'}}">
            <image src='{{item.contents}}' mode='widthFix' style='width:100%;'></image>
            <view class='delet pa tc font22 white bg_grayc' data-index='{{index}}' bindtap='deletTap'><text>×</text></view>
          </view>
          <view class='font15 gray2 tj lineH_m text p_all10 m_t30 pr' wx:if="{{item.name == 'text'}}">
            <text>{{item.contents}}</text>
            <view class='delet pa font22 white bg_grayc' data-index='{{index}}' bindtap='deletTap'><text>×</text></view>
            <view class='edit pa bg_grayc tc' data-index='{{index}}' bindtap='editTap'>
              <image src='/images/icon/edit.png' style='width:26rpx;height:26rpx;margin-top:12rpx'></image>
            </view>
          </view>
        </view>
      </view>
    
      <view class='tc p_tb15'>
        <text class='block font15 gray9' wx:if="{{content.length <= 0}}">开始添加内容</text>
        <view class='m_t10' bindtap='addTap'><text class='addto bg_graye white font24' bindtap='addtoTap'>+</text></view>
        <view class='inline_block p_tb5 p_lr30 addview m_t10' wx:if="{{addHidden == false}}">
          <view class='inline_block m_r20' bindtap='addTextTap'>
            <image src='/images/icon/fa_03.png' style='width:40rpx;height:40rpx;'></image>
            <text class='block font14 gray2 tc'>文字</text>
          </view>
          <view class='inline_block' bindtap='chooseImg'>
            <image src='/images/icon/fa_05.png' style='width:40rpx;height:40rpx;'></image>
            <text class='block font14 gray2 tc'>图片</text>
          </view>
        </view>
      </view>
    
      <view class='pf textrea bg_white {{textreaHidden == true ? "animation_huachu" : "animation_huaru"}}' wx:if="{{textreaHidden == false}}">
        <form bindsubmit="textreaSubmit">
          <view class='p_all15 bd_b'style='min-height:300rpx;'>
            <textarea value='{{editVal}}' adjust-position="true" maxlength='-1' name="textarea" placeholder='请输入内容……' auto-height='true' class='font15 gray2'></textarea>
          </view>
            <view class='tr p_lr15'>
              <button class='green font16' form-type="submit">
                <text>完成</text>
              </button>
            </view>
        </form>
      </view>
    </view>
  <!-- 提交报名 -->
    <view class='tr p_lr15 bg_white' style='margin-top:30rpx;'>
      <button class='form_button' form-type="submit">
        <text class='p_tb5 p_lr20 bg_theme white font16 tc block' style='border-radius:15rpx;width:100%;height:80rpx;line-height:60rpx;margin: 0 auto;'>提交信息</text>
      </button>
    </view>
  </form>
</view>


js

// pages/forum/publish/publish.js
//获取应用实例
const app = getApp()
Page({

  /**
   * 页面的初始数据
   */
  data: {
    sortCurrent: '',//
    upload_limit: 1,// 默认最多上传9张
    img_srcs: [], //如果是编辑状态,只需要把原信息的图片地址放到此处就可以显示出来
    img_src: [],
    content: [],//正文内容
    textreaHidden: true,
    addHidden: false,
    editVal: '',//编辑文字内容
    editIndex: '',//编辑的index
    userZoneList: [],//城市列表
    index2: '',//城市下标
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {
    var that = this;
    //wx.hideShareMenu();//隐藏分享
    //显示顶部加载动画
    wx.showNavigationBarLoading(
      console.log('页面加载开始'),
    );  
    wx.request({
      url: app.d.hostUrl + 'home.articleType',
      method: 'GET',
      header: {
        'Accept': 'application/json'
      },
      success: function (res) {
       // console.log(res)
        var data = res.data;
        that.setData({
          sortCurrent: data[0].id,
        })
       }
    })
    //城市列表
    wx.request({
      url: app.d.ceshiUrl + 'activity.areaList',
      success: function (res) {
        console.log(res.data)
        var res = res.data;
        that.setData({
          userZoneList: res,
        })
        wx.hideNavigationBarLoading();
      }
    })
  },

  //所在城市选择
  bindPickerzone: function (e) {
    console.log('picker发送选择改变,携带值为', e.detail.value)
    this.setData({
      index2: e.detail.value
    })
  },

  articlecurrentTap: function (e) {
    var that = this;
    console.log(e);
    that.setData({
      sortCurrent: e.target.id,
    })
  },
  addTap: function (e) {
    var that = this;
    if (that.data.addHidden == false) {
      that.setData({
        addHidden: true,
        editIndex: '',
        editVal: '',
      })
    } else {
      that.setData({
        addHidden: false,
        editIndex: '',
        editVal: '',
      })
    }
  },
  //上传图片
  chooseImg: function (e) {
    var that = this;
    wx.chooseImage({
      count: that.data.upload_limit,
      sizeType: ['original', 'compressed'], // 可以指定是原图还是压缩图,默认二者都有
      sourceType: ['album', 'camera'], // 可以指定来源是相册还是相机,默认二者都有
      success: function (res) {
        // 返回选定照片的本地文件路径列表,tempFilePath可以作为img标签的src属性显示图片
        var tempFilePaths = res.tempFilePaths;
        console.log(tempFilePaths)
        that.sendPhotos(tempFilePaths);
        console.log(that.data.content);
      }
    })
  },
  //发图片发送给后端服务器
  sendPhotos: function (tempFilePaths) {
    var that = this
    wx.showNavigationBarLoading();
    console.log(tempFilePaths[0])
    if (tempFilePaths.length !== 0) {
      wx.uploadFile({
        url: app.d.ceshiUrl + 'comment.uploadPic',
        filePath: tempFilePaths[0],
        name: 'picture',
        header: { "Content-Type": "multipart/form-data" },
        success: function (res) {
          console.log(res.data)
          var data = JSON.parse(res.data)
          console.log(data)
          var j = that.data.content.length;
          var content = that.data.content;
          if (data !== '') {
            var path = data.path;
            content[j] = {
              "name": "img",
              "contents": "https://xcx.fczxwl.com/attachment/" + path
            };
          }

          that.setData({
            content: content,
            addHidden: true
          });
          console.log(that.data.content)
          wx.hideNavigationBarLoading();
          tempFilePaths.splice(0, 1);
          
          // that.sendPhotos(tempFilePaths);
        },
        fail: function (res) {
          console.log('上传图片到服务器失败');
        },
        complete: function (res) {
          console.log(res);
        }
      })
    }
  },
  //图片预览
  previewImage: function (e) {
    var img_srcs = this.data.img_srcs;
    var index = e.target.dataset.index;
    wx.previewImage({
      current: img_srcs[index],
      urls: img_srcs           // 需要预览的图片http链接列表
    })
  },
  //删除内容快
  deletTap: function (e) {
    var that = this;
    console.log(e)
    var index = e.currentTarget.dataset.index;
    var content = that.data.content;
    wx.showModal({
      title: '提示',
      content: '确定要删除?',
      success: function (res) {
        if (res.confirm) {
          content.splice(index, 1)
          that.setData({
            content: content,
          })
        }
      }
    })
  },
  addTextTap: function (e) {
    var that = this;
    that.setData({
      textreaHidden: false,
    })
  },
  //文字textrea提交
  textreaSubmit: function (e) {
    var that = this;
    console.log(e.detail.value.textarea)
    var j = that.data.content.length;
    var content = that.data.content;
    var value = e.detail.value.textarea;
    console.log(value);//上传的内容
    //判断内容是否为空
    if (value !== "") {
      if (that.data.editIndex !== '') {
        //editIndex
        content[that.data.editIndex].contents = value;
      } else {
        content[j] = {
          "name": "text",
          "contents": value
        };
      }
      that.setData({
        textreaHidden: true,
        content: content,
        addHidden: true
      })
      console.log(that.data.content)
    } else {
      wx.showModal({
        title: '提示',
        content: '内容不能为空,请输入内容',
        success: function (res) {
          if (res.confirm) {
            return false;
          } else {
            that.setData({
              textreaHidden: true,
            })
          }
        }
      })
    }
  },
  //文字編輯
  editTap: function (e) {
    var that = this;
    console.log(e)
    var index = e.currentTarget.dataset.index;
    var content = that.data.content;
    that.setData({
      textreaHidden: false,
      editVal: content[index].contents,
      editIndex: index,
    })
  },

  //发布提交信息
  formSubmit: function (e) {
    wx.showNavigationBarLoading();
    var userInfo = wx.getStorageSync('userInfo');//用户基本信息
    var that = this;
    console.log(that.data.content);
    //console.log(e)
    var city = e.detail.value.city;//所在城市
    var area = e.detail.value.area;//房屋面积
    var phoneNumber = e.detail.value.phoneNumber;//手机号
    var userName = e.detail.value.userName;//姓名
    console.log(e.detail.value)
    var arr = {//正文内容
      "content": that.data.content
    }
    var typeid = that.data.sortCurrent;
    var typename;
    var mobile = /^[1][3,4,5,7,8][0-9]{9}$/;
    var isMobile = mobile.exec(e.detail.value.phoneNumber)
    //所有消息有任一为空时
    if (city == "" || area=="" || phoneNumber=="" || userName=="") {
      wx.showModal({
        title: '发布提示',
        content: '您的信息缺失,请重新填写!',
        showCancel: false,
        success: function (res) {
          if (res.confirm) {
            return false;
          }
        }
      })
      wx.hideNavigationBarLoading();
    }
    //判断电话号格式是否正确
    else if (!isMobile) {
      console.log('form表单发生点击事件,携带的数据为:', e.detail.value)
      console.log('电话:', e.detail.value.phoneNumber)
        wx.showModal({
          title: '提示!!',
          content: '你输入的电话不符,请重新检查填写',
         })
    }
    //当所有消息不为空
    else {
      //判断主要内容
      console.log(arr.content.length);
      if (arr.content.length == 0){
        wx.showModal({
          title: '发布提示',
          content: '文章内容不能为空,请编辑内容',
          showCancel: false,
          success: function (res) {
            if (res.confirm) {
              return false;
            }
          }
        })
        wx.hideNavigationBarLoading();
      }else{
        wx.request({
          url: app.d.hostUrl + 'activity.addApply',
          data: {
            "openid": wx.getStorageSync('openid'),
            "nickname": userInfo.nickName,   //昵称
            "avatar": userInfo.avatarUrl,  //头像
            // "title": title,
            "name": e.detail.value.userName,  //姓名
            "zone": e.detail.value.city,   //城市
            "area": e.detail.value.area,   //手机号
            "tel": e.detail.value.phoneNumber,   //手机号
            "content": arr,  //内容
          },
          method: 'GET',
          header: {
            'Accept': 'application/json'
          },
          success: function (res) {
            console.log(res)
            wx.hideNavigationBarLoading();
            wx.showToast({
              title: '已提交报名',
              icon: 'success',
              duration: 2000,
              success: function () {
                setTimeout(function () {
                  wx.reLaunch({
                    url: '/pages/activity/home/home',
                  })
                }, 2000)
              }
            })
          }
        })
      }
    }
  },
  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady: function () {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow: function () {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide: function () {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload: function () {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh: function () {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom: function () {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage: function (res) {
    if (res.from === "button") {
      console.log("来自页面内转发按钮");
      console.log(res.target);
    } else {
      console.log("来自右上角转发菜单")
    }
    return {
      title: '嘿,装修',
      path: '/pages/index/index?shareid=' + wx.getStorageSync("openid"),
      success: (res) => {
        console.log("转发成功", res);
      },
      fail: (res) => {
        console.log("转发失败", res);
      }
    }

  }
})

补充的有代表性的样式

.addview20{
  border-radius: 40rpx;
  box-shadow: #aaa 0px 1px 5px;
}

.inputstyle{
  width: 90%;
  height: 60rpx;
  border-radius:15rpx;
  padding: 15rpx 0 15rpx 55rpx;
  background-color: #eee;
  margin-top:30rpx;
  margin-left:20rpx;
  font-size: 28rpx;
}

.contentView .text{
  box-shadow: #bbb 0px 1px 5px;
  border-radius: 10rpx;
}
.contentView .delet{
  width: 50rpx;
  height: 50rpx;
  line-height: 50rpx;
  top: -30rpx;
  right: 20rpx;
  border-radius: 50%;
  z-index: 9;
}
.contentView .delet text{
  display: block;
  text-align: center;
  margin: auto;
}
.contentView .edit{
  width: 50rpx;
  height: 50rpx;
  top: -30rpx;
  right: 90rpx;
  border-radius: 50%;
  z-index: 9;
}

.inline_block{display: inline-block;}

.textrea{
  top: 0;
  left: 0;
  bottom: 0;
  right: 0;
  z-index: 99;
}

.textrea button{
  display: inline-block;
  background: none;
  border: 0;
  margin: 0;
  padding: 0;
  padding-left:0;
  padding-right:0;
  border-radius:0;
}
.textrea button::after{
  content:'';
  width:0;
  height:0;
  -webkit-transform:scale(1);
  transform:scale(1);
  display:none;
  background-color:transparent;
}

.pf{position: fixed;}

 

 

 

 

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

微信小程序 picker选择器 表单验证 源码 的相关文章

  • 安装Ubuntu20.04后时间不准

    安装Ubuntu20 04后时间不准 买了一台瘦客户机 原先是安装Windows操作系统的 后面安装Ubuntu20 04后导致时间一直有问题 不准 解决办法 1 安装 ntpdate sudo apt get install ntpdat
  • Pandas 数据结构之 DataFrame使用教程

    Pandas 数据结构 DataFrame 简介 DataFrame 实例化 行数据的选择 1 按位置选择行数据 单行选择 2 按位置选择行数据 多行选择 类似于切片 3 按索引值选择单 多 行数据 4 按条件 bool 选择指定的行数据
  • String、StringBuffer与StringBuilder之间区别

    String StringBuffer StringBuilder String的值是不可变的 这就导致每次对String的操作都会生成新的String对象 不仅效率低下 而且浪费大量优先的内存空间 StringBuffer是可变类 和线程
  • Tomcat的简单使用

    简单使用Tomcat 1 Tomcat Web容器 1 1安装 1 2 Tomcat文件夹功能讲解 3 启动Tomcat 4 发布网页 1 Tomcat Web容器 Tomcat是用来发布前端站点或者后端程序的 1 1安装 Tomcat 的
  • Collection集合类和Map接口各实现类详解

    Java的集合类 collection接口和Map 一 集合概述 集合 集合是java中提供的一种容器 可以用来存储多个数据 集合和数组既然都是容器 它们有啥区别呢 数组的长度是固定的 集合的长度是可变的 数组中存储的是同一类型的元素 可以
  • 【软件测试】自动化测试战零基础教程——Python自动化从入门到实战(八)

    整理不易 希望对各位学习软件测试能带来帮助 软件测试知识持续更新 第七章 引入测试报告与结构优化 第一节 生成 HTMLTestRunner 测试报告 第二节 测试套件 7 2 1 测试套件实例 7 2 2 整合 HTMLTestRunne
  • awk从放弃到入门(1):awk基础 (通俗易懂,快进来看)

    我们先来用专业的术语描述一下awk是什么 如果你看不懂 没关系 我们会再用 大白话 解释一遍 awk是一个报告生成器 它拥有强大的文本格式化的能力 这就是专业的说法 你可能不理解所谓的报告生成器中的 报告 是什么 你可以把 报告 理解为 报
  • 线程通信基础示例(synchronized 与 Lock + Condition实现线程通信)

    目录 一 synchronized 实现线程通讯 代码示例 二 Lock Condition 实现线程通讯 代码示例 Lock Condition 实现线程通讯的优点 一 synchronized 实现线程通讯 什么是线程通讯 可以将线程分
  • localStorage的高阶用法

    原文 https mp weixin qq com s VBTAWVMAUq822dwNA1A2kg const config type localStorage 本地存储类型 localStorage sessionStorage pre
  • JAVA注释、标识符和变量

    JAVA正确注释和标识符 java的注释 java的注释就是用特殊规定的符号来说明在代码中对代码功能的解释 总共分为三种 1 这个为单行注释 2 这种为多行注释 3 用于文档注释 在类 成员变量以及方法功能的说明上 给与说明 提示功能 ja
  • Unity Mecanim动画系统 之 解决模型有些动画播放后发生的位置、方向偏转 (根骨骼动画)的问题

    Unity Mecanim动画系统 之 解决模型有些动画播放后发生的位置 方向偏转 根骨骼动画 的问题 目录 Unity Mecanim动画系统 之 解决模型有些动画播放后发生的位置 方向偏转 的问题 一 简单介绍 二 实现原理 三 效果预
  • C++ 基础编程 路灯问题

    问题描述 V先生有一天工作到很晚 回家的时候要穿过一条长l的笔直的街道 这条街道上有n个路灯 假设这条街起点为0 终点为l 第i个路灯坐标为ai 路灯发光能力以正数d来衡量 其中d表示路灯能够照亮的街道上的点与路灯的最远距离 所有路灯发光能
  • 分支算法应用2--快速排序

    快速排序 快速排序就是将一个需要排序的数组A a0 a n 1 顺序排列输出 首先从数组中随便找到一个元素x 然后将小于这个元素x的所有元素放到这个元素左边 将大于这个元素x的所有元素放到这个元素的右边 最后运用递归再对x左边和右边的元素进
  • ZooKeeper 分布式协调工具

    目录 一 ZooKeeper 概述 二 ZooKeeper Windows 单机版安装 三 ZooKeeper 集群环境下选举过程 四 ZooKeeper 存储数据的过程 五 ZooKeeper 监听 六 java 操作 ZooKeeper
  • ubuntu使用教程与常用命令

    ubuntu使用教程 一 Ubuntu简介 Ubuntu 乌班图 是一个基于Debian的以桌面应用为主的Linux操作系统 据说其名称来自非洲南部祖鲁语或科萨语的 ubuntu 一词 意思是 人性 我的存在是因为大家的存在 是非洲传统的一
  • 软件测试入门知识,jmeter系统基础课程———带你由浅入深学性能(完)

    软件测试知识持续更新中 性能测试常见问题 简述性能测试流程 如何确定系统最大负载 你们系统哪些地方 哪些功能 做了性能测试 你们的并发用户数是怎么确定的 你们性能测试什么时间执行 怎么分析性能测试结果 think time 的作用是什么 在
  • 1.1关于数据挖掘

    一 数据挖掘是什么 从技术层面讲 数据挖掘指从大量数据中提取潜在有用的信息和知识的过程 从商业层面讲 数据挖掘是一种对大量业务数据进行抽取 转换 分析和建模处理 并从中提取辅助商业决策的关键数据的商业信息处理技术 二 数据挖掘与传统传统数据
  • 计算机总线仲裁详解

    文章目录 总线仲裁 一 关于总线仲裁 二 总线仲裁的分类 1 集中仲裁方式 1 链式查询方式 2 计数器定时查询方式 3 独立请求方式 2 分布仲裁方式 总线仲裁 一 关于总线仲裁 总线仲裁来由 我们按照对总线有无控制功能将总线上所连接的各
  • Android-CMakeLists.txt 链接第三方库(动态或者静态库)到自己的生成库中

    最近在做关于NDK开发的项目 编译方式通过cmake 如何将第三方动态链接库连接到自己生成的动态库中 按照以下步骤 1 首先看目录结构 首先将第三方库复制到jniLibs下 并创建对应的CUP平台目录 2 CMakeLists txt 方式
  • 外观设计模式

    外观设计模式 根据实际案例分析外观模式 Facade 示例 业务与设计模式落地案例 根据实际案例分析外观模式 Facade 案例 假设一个放电影功能 在播放电影时 需要放下窗帘 打开空调 打开播放机 打开音响 考虑用户观影时间较长时 提供暂

随机推荐

  • 掉电无法启动数据库问题解决

    由于突然掉电 造成客户在windows平台上10 2 0 1数据库无法驱动 以下是具体解决步骤 一 定位故障问题 1 启动数据库 查看错误 SQL gt startup ora 01113 file 1 needs media recove
  • 文献管理软件工具讲解-------阿冬专栏!!!

    一 Endnote Mendeley Zotero NoteExpress 和 NoteFirst 这些文献管理软件从功能上各有特色 网上的评论文章也不少 我自己的的使用体验 如下 A 功能方面 在导入中文文献数据的准确性上 Endnote
  • Python手册

    前言 Python编程语言可以很好地协调一些看起来似乎很明显的矛盾 Python编程语言格式优雅并注重实效 简单而且功能强大 非常高层但是并不妨碍用户对底层的比特 bit 和字节 Byte 的处理 Python编程语言适合于编程新手 对Py
  • Oracle中的子程序和程序包

    存储过程的语法 CREATE OR REPLACE PROCEDURE
  • 华为机试题107-求解立方根

    描述 计算一个浮点数的立方根 不使用库函数 保留一位小数 数据范围 val 20 输入描述 待求解参数 为double类型 一个实数 输出描述 输出参数的立方根 保留一位小数 示例1 输入 19 9 输出 2 7 示例2 输入 2 7 输出
  • 《2022数字藏品研究报告》首发,读懂NFT中西方价值捕获的分化之路

    NFT作为 柯林斯词典 2021年度热词榜第一 很多人愿意称2021年为NFT元年 在过去几年里 我们见证了NFT从早期Myspace里的Pepe圈内文化发展成为风靡全球的潮流风向标 无论是在音乐圈 游戏圈或者摄影圈 如果你想成为行业的弄潮
  • 【Makefile】Makefile的使用

    Makefile的使用 一 Makefile简单介绍 二 Makefile的核心规则 三 Makefile的语法 syntax 1 通配符 patten 2 假象目标 phony 3 变量 variable 四 Makefile函数 1 函
  • IDEA项目中Maven仓库爆红

    很久没看项目 突然有一天打开发现maven仓库爆红 把仓库删了重新下载东西也没有变化 后来发现主要原因在pom xml中http maven apache org POM 4 0 0爆红 现在已经改了 提示URL无效 于是在settings
  • 搞清CSS样式中background-position(背景图片定位)

    昨天看一个网页的时候 看到一句 background url images top2 jpg no repeat 50 9px 其中50 代表的意义等同于left 容器 container 的宽度 背景图片的宽度 left百分比 超出的部分
  • Vue使用高德地图报 INVALID_USER_SCODE 错误

    项目场景 通过地点名称搜索并更新地图位置没有反应 搜索功能失效 问题描述 输入地点后点击搜索报错 原因分析 自2021年12月02日升级 升级之后所申请的 key 必须配备安全密钥 jscode 一起使用 解决方案 通过在高德开放平台创建并
  • Linux stat 命令及示例

    介绍 该stat命令打印有关文件和文件系统的详细信息 该工具提供有关所有者是谁 修改日期 访问权限 大小 类型等信息 该实用程序对于故障排除 在更改文件之前获取有关文件的信息以及例行文件和系统管理任务至关重要 本文stat通过实际示例解释了
  • 跨平台游戏引擎 Axmol-2.0.0 正式发布

    下载 https github com axmolengine axmol releases tag v2 0 0 更新日志 添加实验性的 WebAssembly 构建支持 WebGL 2 0 由 nowasm 贡献 已知问题 WebGL
  • C++:压缩算法1.0

    题目描述 某压缩算法的基本思想是用一个数值和一个字符代替具有相同值的连续字符 例如 输入字符串 RRRRRGGBBBBBBC 压缩后为 5R2G6B1C 请编写程序实现上述功能 输入 输入共一行 一串待压缩的字符 输出 输出共一行 压缩后的
  • uniapp实现猜数字小游戏

    一个uniapp的样例 超级简单 效果图在最后 外观 首先定义文字区块 用来告诉玩家现在改干什么以及猜的数字是猜大了还是猜小了
  • C++ STL迭代器相关

    map 迭代器 以下代码在编译时出错 提示c map报错 map set iterators incompatible map
  • 客户端无法连接腾讯云服务器Redis

    一 问题 使用Redis Desktop Manager 昨天可以连接上Redis服务器 今天却不可以 二 解决方案 1 确保IP地址 端口号 输入密码正确 1 1 redis conf 文件中port 1 2 redis conf文件中r
  • mysql执行计划固定_Oracle固定SQL的执行计划(一)---SQL Profile

    我们都希望对于所有在Oracle数据库中执行的SQL CBO都能产生出正确的执行计划 但实际情况却并非如此 由于各种各样的原因 比如目标SQL所涉及的对象的统计信息的不准确 或者CBO内部一些成本计算公式的先天缺陷等 导致有时CBO产生效率
  • Java使用for循环和while循环分别实现实现任意一个正整数逆序输出

    使用for循环将任意位数的正整数逆序 import java util Scanner public class ForNiXuTest public static void main String args System out prin
  • LSTM时间序列预测代码超通俗解释(MATLAB)

    数据在评论区 可以查看这一篇博客有更好的代码和可视化 多序列 http t csdn cn a4pM0 单序列 https blog csdn net m0 62526778 article details 128996795 clc cl
  • 微信小程序 picker选择器 表单验证 源码

    微信小程序表单验证 这是自己写的 比较low 下篇附上公司大佬的源码 嘿嘿 所在城市带选择城市的功能 比较懒笨 附上的代码是完整的 把接口数据换成自己的就可以用了 样式需要自己调 请在评论区夸我 附上要用的API的路径 https deve