几个开发用的很多的小妙招

394 阅读2分钟

小知识,大挑战!本文正在参与“程序员必备小知识”创作活动。

本文同时参与 「掘力星计划」   ,赢取创作大礼包,挑战创作激励金

前言

基础学习

先来一个小栗子:

let req = '/at/gi'; // 匹配字符串中的所有 at 不区分大小写

emmmm 注释是这样说的,可是我们该怎么理解呢?

let req = '/pattern/flags'

pattern(模式) 可以是任何简单或复杂的正则表达式,包括字符类、限定符、分组、向前查找和反向引用

flags(标记),用于控制正则的行为,直接上介绍

  • g: 全局模式,表示查找字符串全部的内容,而不是找到第一个匹配的内容就结束
  • i:不区分大小写,表示在查找匹配是会忽略pattern和字符串的大小写
  • m: 多行模式,表示查到一行文本末尾时,会继续查找
  • y: 黏附模式,表示只查找到一行文本末尾时会继续查找
  • u: Unicode模式,启用Unicode匹配
  • s: dotAll模式,表示元字符,匹配任何字符(包括\n或\r)

富文本截取内部的内容

var a = document.createElement("div") // 创建一个容器进行存储富文本内容 
a.innerHTML = '<div>111<span>22222</span></div>'  // 为容器添加元素
a.innerText // "11122222"

是否带有小数

function isDecimal(strValue)  {  
   var  objRegExp= /^\d+\.\d+$/;
   return  objRegExp.test(strValue);  
}  

校验是否中文名称组成

function ischina(str) {
    var reg=/^[\u4E00-\u9FA5]{2,4}$/;   /*定义验证表达式*/
    return reg.test(str);     /*进行验证*/
}

校验是否全由8位数字组成

function isStudentNo(str) {
    var reg=/^[0-9]{8}$/;   /*定义验证表达式*/
    return reg.test(str);     /*进行验证*/
}

校验电话码格式

function isTelCode(str) {
    var reg= /^((0\d{2,3}-\d{7,8})|(1[3584]\d{9}))$/;
    return reg.test(str);
}

校验邮件地址是否合法

function IsEmail(str) {
    var reg=/^\w+@[a-zA-Z0-9]{2,10}(?:\.[a-z]{2,4}){1,3}$/;
    return reg.test(str);
}

替换特定文件保留中间的变量

目前需求是

<p>小型铲运机是指铲斗容积在3m&sup3;以下的铲运机。</p> 要求:

  • 替换 &sup3; 为 <sup>3</sup>

  • 保留 &sup3; 中间的常量

let str = '<p>小型铲运机是指铲斗容积在3m&sup3;以下的铲运机。</p>'
str.replace(/&sup(.*?);/, '<sup>$1</sup>')

身份证号码部分显示隐藏

IDcardNo() {
  const card = '123845785238542307'
  if (this.showIdCardNo) {
    console.log(1111)
    return card
  }
  // 截取 身份证号的 第3位 到倒数第3位的字符串
  const reg = card.slice(3, -3)
  //  根据截取的长度进行补 * 操作
  const pad = '*'.padStart(reg.length, '*')
  return card.replace(reg, pad)
}

字符串截取

analysisUrl(url: string): any {
  if (url) {
   //字符串截取
    url = url.substr(url.indexOf('?') + 1) 
  }
   //创建一个对象,用于存name,和value
  const result = {},
    queryString = url || location.search.substring(1), //location.search设置或返回从问号 (?) 开始的 URL(查询部分)。
    re = /([^&=]+)=([^&]*)/g 
  let m: any = ''
  while ((m = re.exec(queryString))) {
    //exec()正则表达式的匹配
    //使用 decodeURIComponent() 对编码后的 URI 进行解码
    result[decodeURIComponent(m[1])] = decodeURIComponent(m[2]) 
  }
  return result
}

总结

这里就给大家献上这些小方法啦!喜欢的话求收藏求点赞,不喜欢也请吐槽一下!