加入收藏 | 设为首页 | 会员中心 | 我要投稿 西安站长网 (https://www.029zz.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 建站 > 正文

开发中常用的 25 个JavaScript 单行代码

发布时间:2019-06-28 00:29:00 所属栏目:建站 来源:alentan
导读:副标题#e# 1.强制布尔值 要将变量强制转换为布尔值而不更改其值: constmyBoolean=!!myVariable; !!null//false !!undefined//false !!false//false !!ture//ture !!//false !!string//true !!0//false !!1//true !!{}//true !![]//true 2.基于某个条件为对

使用 String.replace() 去除下划线,连字符和空格,并将驼峰拼写格式的单词转换为全小写。省略第二个参数 separator ,默认使用 _ 分隔符。

  1. const fromCamelCase = (str, separator = '_') =>str.replace(/([a-zd])([A-Z])/g, '$1' + separator + '$2').replace(/([A-Z]+)([A-Z][a-zd]+)/g, '$1' + separator + '$2').toLowerCase(); 
  2. fromCamelCase('someDatabaseFieldName', ' '); // 'some database field name' 
  3. fromCamelCase('someLabelThatNeedsToBeCamelized', '-'); // 'some-label-that-needs-to-be-camelized' 
  4. fromCamelCase('someJavascriptProperty', '_'); // 'some_javascript_property' 

19.是否为绝对地址

  1. const isAbsoluteURL = str => /^[a-z][a-z0-9+.-]*:/.test(str); 
  2. isAbsoluteURL('https://google.com'); // true 
  3. isAbsoluteURL('ftp://www.myserver.net'); // true 
  4. isAbsoluteURL('/foo/bar'); // false 

20.获取两个日期相差天数

  1. const getDaysDiffBetweenDates = (dateInitial, dateFinal) => (dateFinal - dateInitial) / (1000 * 3600 * 24); 
  2. getDaysDiffBetweenDates(new Date('2017-12-13'), new Date('2017-12-22')); // 9 

21.数组去重

  1. const deDupe = (myArray) => [... new Set(myArray)]; 
  2. deDupe([1, 1, 2, 1, 3, 3, 4]) 
  3. // [1, 2, 3, 4] 

22.数组对象去重

  1. const uniqueElementsBy = (arr, fn) =>arr.reduce((acc, v) => {if (!acc.some(x => fn(v, x))) acc.push(v);return acc;}, []); 
  2. uniqueElementsBy([{id: 1, name: 'Jhon'}, {id: 2, name: 'sss'}, {id: 1, name: 'Jhon'}], (a, b) => a.id == b.id) 
  3. // [{id: 1, name: 'Jhon'}, {id: 2, name: 'sss'}] 

23. RGB 颜色转 16进制颜色

  1. const RGBToHex = (r, g, b) => ((r << 16) + (g << 8) + b).toString(16).padStart(6, '0'); 
  2. RGBToHex(255, 165, 1); // 'ffa501' 

24. 常用密码组合正则

  1. const passwordReg = /(?!^(d+|[a-zA-Z]+|[~!@#$%^&*?]+)$)^[w~!@#$%^&*?]{8,20}$/; 
  2. // -长度8~20位字符,支持大小写字母、数字、符号三种字符中任意两种字符的组合 

25. 判断dom元素是否具有某个className

  1. const hasClass = (el, className) => new RegExp(`(^|s)${className}(s|$)`).test(el.className); 

(编辑:西安站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读