正则表达式常用的函数及用法说明

正则表达式

正则表达式(Regular Expression,简称regex或RegExp)是一种用于描述字符串匹配规则的工具,它由一些特殊字符和普通字符组成,用于匹配符合特定模式的字符串。

正则表达式可以用来实现各种功能,如搜索、匹配、替换、分割等。它在很多编程语言中都有广泛应用,如JavaScript、Python、Java等。

正则表达式的语法比较灵活,常用的语法包括:

字符组:用方括号 [] 表示,用于匹配一组字符中的任意一个。例如 [abc] 表示匹配 a、b、c 中的任意一个字符。

量词:用于描述一个字符或一组字符的重复次数。例如 * 表示重复0次或多次,+ 表示重复1次或多次,? 表示重复0次或1次,{n} 表示重复 n 次,{n,} 表示重复至少 n 次,{n,m} 表示重复 n 到 m 次。

边界符:用于匹配字符串的边界,包括^、$、\b、\B等。

特殊字符:如 . 表示匹配任意字符,\d 表示匹配数字,\w 表示匹配字母、数字、下划线等单词字符,\s 表示匹配空格、制表符等空白字符,\n 表示匹配换行符等特殊字符。

分组:用小括号 () 表示,可以将多个字符看作一个整体,并对整体进行量词、分支等操作。

正则表达式常用的函数

1、test():测试一个字符串是否符合某个正则表达式的规则,返回布尔值

const str = 'Hello, world!';
const regex = /Hello/;
const isMatched = regex.test(str);
console.log(isMatched); // true

2、match():在一个字符串中查找符合某个正则表达式的内容,返回匹配结果的数组或 null

const str = 'Today is June 1st.';
const regex = /\b(June)\b/;
const matches = str.match(regex);
console.log(matches); // ["June", index: 9, input: "Today is June 1st.", groups: undefined]

3、replace():将一个字符串中符合某个正则表达式的内容替换为指定的字符串或函数,返回替换后的新字符串。

const str = 'Hello, world!';
const regex = /Hello/;
const newStr = str.replace(regex, 'Hi');
console.log(newStr); // "Hi, world!"

如果第二个参数是一个函数,该函数将被调用来生成替换文本。该函数将接收到以下参数:
1.匹配到的文本
2.匹配文本在原字符串中的索引位置
3.原字符串

const str = "I have 3 apples and 2 oranges.";
const newStr = str.replace(/\d+/, function(match) {
  return Number(match) * 2;
});
console.log(newStr); // "I have 6 apples and 4 oranges."
const text = '我出生在1997年8月12日';
const pattern = /([0-9])/g; // 匹配所有数字
const digitMap = ['零', '一', '二', '三', '四', '五', '六', '七', '八', '九']; // 数字对应中文

const result = text.replace(pattern, match => digitMap[match]); // 将数字替换成中文
console.log(result); // 输出:我出生在一九九七年八月一二日

4、search():在一个字符串中搜索符合某个正则表达式的内容,返回第一个匹配结果的位置,如果没有找到则返回 -1。

const str = 'Today is June 1st.';
const regex = /\b(June)\b/;
const index = str.search(regex);
console.log(index); // 9

5、split():将一个字符串按照符合某个正则表达式的内容进行分割,返回分割后的数组。

const str = 'one, two, three';
const regex = /,\s*/;
const arr = str.split(regex);
console.log(arr); // ["one", "two", "three"]

6、exec() 是 JavaScript 中 RegExp 对象的方法,用于在字符串中执行一个正则表达式匹配。该方法返回一个数组,包含了第一个匹配结果的相关信息,如果没有匹配结果则返回 null。

const regex = /hello (\w+)/;
const str = 'hello world';
const result = regex.exec(str);

console.log(result); // ["hello world", "world"],"hello world"是所匹配的原字符串,"world"是匹配到的值
console.log(result.index); // 0
console.log(result.input); // "hello world"

常见的校验规则

手机号码:以1开头,后面跟10位数字
正则表达式:/^1\d{10}$/

Email地址:^\w+([-+.]\w+)@\w+([-.]\w+).\w+([-.]\w+)*$

身份证号码:15或18位数字,最后一位可以为数字或X
正则表达式:/^\d{15}|\d{18}$/

URL地址:以http或https开头,后面跟:和//,再后面可以跟字母、数字、-、_、.等字符
正则表达式:/^https?/[\w-]+(.[\w-]+)(:\d+)?(/\S)?$/

密码强度:密码中必须包含字母、数字、特殊符号等字符,且长度在8-16位之间
正则表达式:/^(?=.[A-Za-z])(?=.\d)(?=.[@ ! !%#?&])[A-Za-z\d@ !!%*#?&]{8,16}$/

邮政编码:6位数字
正则表达式:/^\d{6}$/

日期格式:年-月-日,年份为4位数字,月份和日期为1-2位数字
正则表达式:/^\d{4}-\d{1,2}-\d{1,2}$/

IP地址:由4个0-255之间的数字组成,以.分隔
正则表达式:/^(25[0-5]|2[0-4]\d|[01]?\d{1,2})(.(25[0-5]|2[0-4]\d|[01]?\d{1,2})){3}$/

你可能感兴趣的:(JavaScript实用小功能,Vue.js学习,正则表达式,javascript,前端)