前端开发当中常用的正则表达式

一分耕耘一分收获


前言

正则是一种神奇的魔法!


正则

此模块会将js开发当中常用的正则表达式列举出来

正则表达式(regular expression)描述了一种字符串匹配的模式(pattern),可以用来检查一个串是否含有某种子串、将匹配的子串替换或者从某个串中取出符合某个条件的子串等 —— 菜鸟教程

判断字符串是否为空或者全为空格

let pattern = /^[\s]*$/  // 匹配0个或多个空格,匹配成功返回true

let str = ""
console.log(pattern.test(str)) // true
let str2 = " "
console.log(pattern.test(str2)) // true
let str3 = "  test "
console.log(pattern.test(str3)) // false

小知识

需求跟业务逻辑是分开的。此表达式匹配0或多个空格,是纯技术角度分析。对于面试的场景模拟,最好是使用此方法(纯技术角度分析)进行解答。


百位符、千位符、万位符

大数据时代为了更加美观的展示数据,会采用分位符进行美化

// 百位符
function pattern(string) {
    
    
    // 全局匹配以2的倍数结尾的前一个数字,改成 该数字+,
    // $1匹配(\d)
    return string.replace(/(\d)(?=(\d{2})+$)/g, "$1,")
}
console.log(pattern('100000')) // 10,00,00

// 千位符
function pattern1(string) {
    
    
    // 全局匹配以3的倍数结尾的前一个数字,改成 该数字+,
    return string.replace(/(\d)(?=(\d{3})+$)/g, "$1,")
}

console.log(pattern1('100000')) // 100,000

// 万位符
function pattern2(string) {
    
    
    // 全局匹配以4的倍数结尾的前一个数字,改成 该数字+,
    return string.replace(/(\d)(?=(\d{4})+$)/g, "$1,")
}

去除字符串里所有空格

这是最简单的一个正则O(∩_∩)O

let str = " 2 22 2"
str = str.replace(/\s*/g,"") // 匹配0或多个空格,替换成空
console.log(str)

去除首尾空格

这其实可以通过 String.prototype.trim 来实现。但是遇到不兼容情况需要自己手写表达式。

let str = " 1 11 1 "
str = str.replace(/^\s+|\s+$/g,"") //匹配开头和结尾1个以上的空格,替换成空
console.log(str) //1 11 1

密码正则

密码表达式分很多情况。常见的有如下
密码
数字字母组成,并且要同时含有数字字母,且长度要在8-16位之间。

// 匹配由字母和数字组成的至少8位至多16位的字符串
// 同时不能全是数字或字母
let pattern = /^(?![0-9]+$)(?![a-zA-Z]+$)[0-9A-Za-z]{8,16}$/ 
console.log(pattern.test("djspadjsaopd231")) // true

兔子


密码包含 数字,英文,字符中的两种以上,且长度要在8-16位之间

//匹配一段8-16位的字符,但是不能纯由字符、大写字母、小写字母、数字匹配
let pattern = /^(?![0-9]+$)(?![a-z]+$)(?![A-Z]+$)(?!([^(0-9a-zA-Z)])+$).{8,16}$/ 
console.log(pattern.test("1222222D222d")) // true

谢谢你看到了这里


尾声

本文到这里就结束了,以后有新的发现还会补充。谢谢大家的用心观看,O(∩_∩)O。


猜你喜欢

转载自blog.csdn.net/zero_person_xianzi/article/details/113746784