卖坚果的怪叔叔 卖坚果的怪叔叔
  • 首页
  • 技术
  • 生活
  • 记录
  • 朋友
  • 常用代码
  • 工具箱
  • 关于
  • 0

JS正则如何限制打折小数点?

坚果大叔
2021-01-03 15:24:44

文章目录[隐藏]

  • 1、必须包含小数点
  • 2、非必须包含小数点
  • 3、判断H5是否在小程序webview打开
  • 4、window.open()跳转被拦截!
    • 解决方案
  • 6、数组对象去重

1、必须包含小数点

let regDis = /^(?=0\.[1-9]|[1-9]\.\d).{3}$|^([2-9])$/

2、非必须包含小数点

let regDis = /^[0-9]{1}(\.[0-9])?$/

3、判断H5是否在小程序webview打开

<script type="text/javascript" src="https://res.wx.qq.com/open/js/jweixin-1.3.2.js"></script>
<script>
    var ua = navigator.userAgent.toLowerCase();
    if(ua.match(/MicroMessenger/i)=="micromessenger") {
        //ios的ua中无miniProgram,但都有MicroMessenger(表示是微信浏览器)
        wx.miniProgram.getEnv((res)=>{
           if (res.miniprogram) {
               alert("在小程序里");
           } else {
               alert("不在小程序里");
           }
        })
    }else{
        alert('不在微信里');
    }
</script>

4、window.open()跳转被拦截!

通过异步请求获取跳转链接后再进行window.open跳转会被浏览器拦截。

解决方案

export default {
  data() {
    return {
      jumpUrl: '',
      newWin: null  // 新窗口的引用
    }
  },
  watch: {
    url(newVal, oldVal) {
      if(newVal && this.newWin) {
        this.newWin.sessionStorage.clear()
        this.newWin.location.href = newVal;
        this.jumpUrl = '';
        this.newWin = null;
      }
    }
  },
  methods: {
    clickHandle() {
      let _this = this;
      // 先打开一个空的新窗口,再请求
      this.newWin = window.open();
      api.get('xxx', params).then(response => {
        let data = response.data;
        if(data.code === 0 ) {
          _this.jumpUrl = data.data.url || '';
        }
      });
    }
  }
}

6、数组对象去重

export function deteleObject(obj) {
    var uniques = [];
    var stringify = {};
    for (var i = 0; i < obj.length; i++) {
        var keys = Object.keys(obj[i]);
        keys.sort(function(a, b) {
            return (Number(a) - Number(b));
        });
        var str = '';
        for (var j = 0; j < keys.length; j++) {
            str += JSON.stringify(keys[j]);
            str += JSON.stringify(obj[i][keys[j]]);
        }
        if (!stringify.hasOwnProperty(str)) {
            uniques.push(obj[i]);
            stringify[str] = true;
        }
    }
    uniques = uniques;
    return uniques;
}
  deteleObject(obj) {
    var hash = {};
    obj = obj.reduce(function(item, next) {
        hash[next.openid] ? '' : hash[next.openid] = true && item.push(next);
        return item
    }, [])
    return obj
  },


微信扫描下方的二维码阅读本文

正则
0
本文系作者 @坚果大叔 原创发布在 卖坚果的怪叔叔。未经许可,禁止转载。
一年一年又一年
上一篇
高处,不一样的风景
下一篇

评论已关闭

坚果大叔

255
文章
66
评论
207
喜欢

近期文章

  • instanceof和typeof的区别
  • 嗖嗖嗖
  • 镜头下的一点记录!
  • React实现打字机效果~
  • 一晃又周三了

猜你喜欢

instanceof和typeof的区别

2023-09-26 17:20:33
56 0 0

React实现打字机效果~

2023-08-22 17:31:49
300 0 1

Mac更换node版本切换工具n模块的镜像源

2023-07-13 13:21:45
279 2 2

Md5引发的血案

2023-07-03 16:45:00
412 0 1

博主

一枚佛系前端开发,会一丢丢摄影,喜欢折腾,爱好美食。分享点前端技巧、笔记以及各种有趣的APP和资源教程♥♥

友链

Lieme

公众号

坚果大叔 执行上下文 卖坚果的怪叔叔
Copyright © 2017-2023 卖坚果的怪叔叔. Designed by nicetheme.

萌ICP备20230818号 苏ICP备18048410号-2
  • 首页
  • 技术
  • 生活
  • 记录
  • 朋友
  • 常用代码
  • 工具箱
  • 关于

搜索

  • 微信机器人
  • CSS
  • js
  • git

坚果大叔

255
文章
66
评论
207
喜欢