2019-11-14 07:46:41    19    0    0
## **canvas画图ctx.drawImage()图片在真机上不显示** - 网络图片记得使用`wx.drawImage`或者`wx.downloadFile`下载下来使用临时路径 - **如果本地图片和网络图片下载下来了还是不能显示, 查看``的宽高必须是有值**
2019-11-14 07:46:41    22    0    0
2019-11-14 07:46:41    8    0    0
## **注意: 小程序需要先上线才能生成二维码** ## **另参考[官方文档](https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1443433542)** ## **另参考[扫普通链接二维码打开体验版小程序](https://developers.weixin.qq.com/miniprogram/introduction/qrcode.html#%E9%85%8D%E7%BD%AE%E6%B5%81%E7%A8%8B)** ## 1. **获取[access_token](https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1421140183)** ### 接口调用请求说明 ``` https请求方式: GET https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=APPID&secret=APPSECRET ``` ### 参数说明 参数|是否必须|说明 :-: | :-: | :-: grant_type|`是`|获取`access_token`填写`client_credential` appid|`是`|第三方用户唯一凭证 secret|`是`|第三方用户唯一凭证密钥,即`appsecret` 以下是Oauth支持的5类 grant_type 及说明 ``` authorization_code 授权码模式(即先登录获取code,再获取token) password 密码模式(将用户名,密码传过去,直接获取token) client_credentials 客户端模式(无用户,用户向客户端注册,然后客户端以自己的名义向’服务端’获取资源) implicit 简化模式(在redirect_uri 的Hash传递token; Auth客户端运行在浏览器中,如JS,Flash) refresh_token 刷新access_token ``` ### 返回说明 ``` {"access_token":"ACCESS_TOKEN","ex
2019-11-14 07:46:41    8    0    0
## 1. App上挂globalData ### App.js App({ globalData: { name: '前端学者', // ...other globalData }, // ...other globalData }); // 取值 var n
2019-11-14 07:46:41    29    0    0
## 小程序运行机制 [文档](https://developers.weixin.qq.com/miniprogram/dev/framework/operating-mechanism.html) 小程序启动 小程序启动会有两种情况,一种是「冷启动」,一种是「热启动」。 热启动:假如用户已经打开过某小程序,然后在一定时间内再次打开该小程序,此时无需重新启动,
2019-11-14 07:46:39    11    0    0

匹配空行

/^$/

验证只能输入大于0的正整数或者两位小数

/^[1-9]+\d*(\.\d{1,2})?$|^0\.([1-9]|\d[1-9])$/.test(value)

替换wei输入大于0的正整数或者两位小数

"11".replace(/^([0-9]+\d*(\.\d{1,2})?).*$/, "$1")

验证只能是正负整数或者0

/^(0|[1-9][0-9]*|-[1-9][0-9]*)$/

input的onkeyup只能输入大于0的正整数

String(value).replace(/^[^1-9]|[^0-9]*$/g, "")

连续三位及以上为重复字

/(\w)*(\w)\2{2}(\w)*/g

二代身份证号码

/^[1-9]\d{5}(18|19|20|(3\d))\d{2}((0[1-9])|(1[0-2]))(([0-2][1-9])|10|20|30|31)\d{3}[0-9Xx]$/

座机号码(包括分机号码, 如: 0799-7276888-7)/手机号码

/^((0\d{2,3}-\d{7,8}(-\d{1})?)|(1[3456789]\d{9}))$/

密码8-32位

/^\w{8,32}$/

纳税人识别号

/[0-9A-HJ-NPQRTUWXY]{2}\d{6}[0-9A-HJ-NPQRTUWXY]{10}/

银行账号

/^([1-9]{1})(\d{14}|\d{18})$/

手机号码

/^[1](([3|5|8][\d])|([4][4,5,6,7,8,9])|([6][2,5,6,7])|([7][^9])|([9][1,8,9]))[\d]{8}$/

不能连续字符(如123、abc)连续3位或3位以上

  1. export function LxStr(str) {
  2. var arr = str.split('');
  3. var flag = true;
  4. for (var i = 1; i < a
2019-11-14 07:46:38    11    0    0
> 参考: https://cloud.tencent.com/developer/article/1476013
2019-11-14 07:46:38    10    0    0
## 生成xlsx文件 #### createXLSX.js ``` /** * create time: 18/6/2019 * author: Peng */ import XLSX from "xlsx" import { message } from "antd" /** * * @param {Array} msgArr * 例子: * 表头 * co
2019-11-14 07:46:38    15    0    0
> 参考: https://lbs.amap.com/api/javascript-api/reference-amap-ui/mass-data/pathsimplifier
2019-11-14 07:46:36    15    0    0
## 特点 1. 接口好比一个名字, 用来描述一个类或方法里的要求 2. 只要传入的参数有一个满足接口的必要条件的话, 就是被允许的, 参数属性的顺序和检查器检验没关系 例如: ``` interface LabelledValue { label: string; } function printLabel(labelledObj: LabelledValue) { console
9/18