Sorry, your browser cannot access this site
This page requires browser support (enable) JavaScript
Learn more >

常用正则表达式

1.数字,保留两位小数

1
^(([1-9]{1}\d*)|(0{1}))(\.\d{0,2})?$
1
2
3
4
2.22, true
2.0 true
2 true
2.222 false

1.1.有效数字,不以0结尾

1
let reg = /^(([1-9]{1}\d*)|(0{1}))(\.\d*[1-9]+)?$/;
1
2
3
4
2.20 false
2.22 true
2 true
2.222 true

2.连续相同字符

1
^(.)\1{1}
1
2
3
let s = "aaabbcde"
s.match(/(.)\1*/g);
["aaa","bb","c","d","e"]

3.奇数

1
/^\d?[13579]$/

4.以某个字符开头的字符

1
2
onst reg = new RegExp(`(?<=${str})\\w+`, 'g');
(?<=${str}) 以某个字符开头

方法

1.replace

语法

str.replace(regexp|substr, newSubStr|function)

1
2
let  ex = "aadcd";
ex = ex.replace('a',1) // "1adcd"
1
2
let  ex = "aadcd";
ex = ex.replace(/a/g,1) // "11dcd"
1
2
3
4
5
6
7
8
let obj = {a: 1, b: 2}
let ex = "aadcd";
ex = ex.replace(/a/g, (match ,offset) => {
console.log(match) // 匹配对象
console.log(offset) // 下标
return obj[match]
})
console.log(ex) // "11dcd"

2.replaceAll

ES2021新特性-替换一个字符串中的所有指定字符 replaceAll()方法的使用
String.protype.replaceAll

在 ES2021 之前

1
2
3
const str = '2-4-6-8-10';
const newStr = str.replace(/\-/g, '+');
console.log(newStr); //2+4+6+8+10

ES2021 之后:

1
2
3
const str = '2-4-6-8-10';
const newStr = str.replaceAll('-', '+');
console.log(newStr); //2+4+6+8+10

在正则中使用变量

1
2
let pre = "flo"
let reg = new RegExp(`${pre}`)

基础知识

正则只能用于匹配,不能用于计算

1
2
3
4
5
6
7
8
9
.匹配除换行符以外的任意字符
\w 匹配字母或数字或下划线或汉字 等价于 ‘[A-Za-z0-9_]’。
\s 匹配任意的空白符
\d 匹配数字
+ 表示重复一次或者多次
?表示重复0次或1次(最多1次);
* 表示重复零次或者多次
{n,m} 表示n 到 m 次
/\XX/g 全局替换

评论