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);
  • 相关阅读:
    bzoj3028食物 关于(1+x+x^2+x^3+x^4+...)^k的第i项系数就是c(i+k−1,k−1)的证明
    一个好玩的题--倒水
    HDU4372(第一类斯特林数)
    MySQL常用基本语句
    腾讯windows客户端一面
    腾讯PC客户端开发方向一面
    LeetCode数据库175
    Intern Day47
    Intern Day46
    Intern Day46
  • 原文地址:https://www.cnblogs.com/sunnyeve/p/12654734.html
Copyright © 2011-2022 走看看