zoukankan      html  css  js  c++  java
  • js 技巧

    1、去除字符串中的HTML代码

    let removeHTML = (str ='')=>str.replace(/<[/!]*[^<>]*>/ig,'')
    eg:
    console.log(removeHTML('<h1>hello world</h1>'));//hello world

    2、input 限制只能输入中文

    let input = document.querySelector('input[type="text"]');
    let clearText = target=>{
    let {value} = target;
    target.value = value.replace(/[^u4e00-u9fa5]/g,'')
    }
    input.onfocus = ({target})=>{
    clearText(target);
    }

    3、禁止网页复制粘贴

    let html = document.querySelector('html');
    html.oncopy = ()=>false
    html.onpaste = ()=>false

    3、判断是否是移动端

    const isMobile = () => 'ontouchstart' in window

    4、字符串空格去除与替换

    //  字符串前面空格去除与替换
    const trimStart = str => str.replace(new RegExp('^(\s*)(.*)$'),'$2')
    console.log(trimStart(' abc '));//abc

    //字符串后面空格去除与替换
    const trimEnd = str => str.replace(new RegExp('^(.*?)([\s]*)$'),'$1')
    console.log(trimEnd(' abc ')) // abc

     5、单行写一个评级组件

    var rate = 1;
    "★★★★★☆☆☆☆☆".slice(5 - rate, 10 - rate);
    当rate的值为1时,就是1颗星。

    6、javascript 错误处理的方式的正确姿势

    try{
    something
    }catch(e){
    window.location.href = "http://stackoverflow.com/search?q=[js]+"+e.message;
    }

    7、取随机字符串

    Math.random().toString(16).substring(2);//13位
    Math.random().toString(36).substring(2);//11位

    8、取整

    var a = ~~2.33;
    var b= 2.33|0;
    var c= 2.33>>0;
    //上面打印的都是 2 ;

    9、实现金钱格式化

    var test = '1234567890';
    var format = test.replace(/B(?=(d{3})+(?!d))/g,',');//1,234,567,890

    or
    function formatCash(str){
    return str.split('').reverse().reduce((prev,next,index)=>{
    return ((index%3)?next:(next+','))+prev
    })
    }

    10、逗号运算符

    var a = 0;
    var b = (a++,99);
    console.log(a);//1
    console.log(b);//99

    11、如何最佳的让两个整数交换数值

    a^=b;
    b^=a;
    a^=b;

    12、实现标准json的深拷贝

    var a = {
    a:1,
    b:{
    c:1,
    d:2
    }
    }
    var b = JSON.parse(JSON.stringify(a))

    13、不用number,parseInt,parseFloat和方法把'1'字符串转换成数字。

    var a ='1';
    +a

    14、最短的代码实现数组去重

    [...new Set([1,'1',2,3,1,1])];  //[1,'1',2,3]

    15、最短的代码实现一个长度为6且值都是8的数组:

    Array(6).fill(8); //[8,8,8,8,8,8]

    16、取出一个数组中的最大值和最小值

    var numbers = [5,35,65,-1,55,26,100];
    var maxNum = Math.max.apply(Math,numbers);//100
    var minNum = Math.min.apply(Math,numbers);//-1

    17、将arguments对象转换为数组

    var args = Array.prototype.slice.call(arguments);
    or
    var args = Array.from(arguments);
  • 相关阅读:
    div里面的内容超出自身高度时,显示省略号
    CSS文本超出2行就隐藏并且显示省略号
    CSS中可以和不可以继承的属性
    return false
    CSS position: absolute、relative定位问题详解
    逆FizzBuzz问题求最短序列
    HTTP协议篇(一):多路复用、数据流
    PHP正则式PCRE
    Docker笔记三:基于LVS DR模式构建WEB服务集群
    架构设计之防止或缓解雪崩效应
  • 原文地址:https://www.cnblogs.com/sunnyeve/p/12654734.html
Copyright © 2011-2022 走看看