小知识,大挑战!本文正在参与“程序员必备小知识”创作活动。
本文同时参与 「掘力星计划」 ,赢取创作大礼包,挑战创作激励金
前言
基础学习
先来一个小栗子:
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³以下的铲运机。</p>
要求:
-
替换
³; 为<sup>3</sup> -
保留
³ 中间的常量
let str = '<p>小型铲运机是指铲斗容积在3m³以下的铲运机。</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
}
总结
这里就给大家献上这些小方法啦!喜欢的话求收藏求点赞,不喜欢也请吐槽一下!