总结前端正则表达式基础知识以及常用配置
正则表达式概念
正则表达式又称规则表达式,正则表达式是对进行操作的一种逻辑公式,用事先定义好的特定字符组合对字符串进行一种筛选过滤
正则表达式组成
元字符
元字符 | 描述 |
---|---|
^ | 开始 |
$ | 结束 |
. | 匹配除换行符外任意字符 |
\w | 匹配任意字母、数字、下划线、汉字 |
\d | 匹配数字 |
\s | 匹配空格或者空白字符 |
| | 或者 |
\ | 转义字符 |
\n | 换行符 |
反义字符
反义字符 | 描述 |
---|---|
\W | 匹配任意不是字母、数字、下划线、汉字的字符 |
\S | 匹配不是空格或者空白字符 |
\D | 匹配不是数字的字符 |
\B | 匹配不是单词开头或者结束的位置 |
[^x] | 匹配除了x以外的任意字符 |
限定字符
限定字符 | 描述 |
---|---|
* | 重复n次 |
+ | 重复最少一次 |
? | 重复零次或者一次 |
{n} | 重复n次 |
{n,} | 重复n次或者更多次 |
{n,m} | 重复n-m次 |
修饰符
修饰符 | 描述 |
---|---|
i | 忽视大小写 |
g | 查找至最后一个数据 |
gi | 查找至最后一个数据并且忽视大小写 |
m | 执行多行匹配 |
正则使用方法
test()
用于检测一个字符串是否匹配某个模式。字符串含有匹配的文本返回true ,否则返回false
var str = 'abc111'
//是否包含空格
var reg = /\s/
var rec = reg.test(str)
console.log(rec) // false
replace()
将字符串中符合正则的内容替换
var str = 'abc123'
//任意为123的字符
var reg = /[123]+/
//将123的字符替换成*
var rec = str.replace(reg,'*')
console.log(rec) //abc***
search()
检索指定字符串,并返回所匹配的字符的位置
var str='abc123'
var sum=str.search('b'); //1
exec()
全局搜索正则中的字符,返回对象并且含有符合内容以及匹配内容在字符串中的位置
var str = '123 abc'
//含有ab的正则
var reg = /ab/
//exec返回一个数组
var rec = reg.exec(str)
console.log(rec) // ['ab',....]
matach()
全局搜索符合正则的值并返回数组,数组内有符合值有几个返回几个,数组内有符合数量
var str = "Hello World";
//匹配o
var reg = /ain/g;
//match返回值为数组
var rec = str.match(reg)
console.log(rec) //['o', 'o']
常用正则表达式
简单正则
需求 | 正则 |
---|---|
汉字 | ^[\u4e00-\u9fa5]{0,}$ |
英文和数字 | ^[A-Za-z0-9]+$ 或 ^[A-Za-z0-9]{4,40}$ |
密码为6-18的数字、字母、下划线 | ^[a-zA-Z]\w{5,17}$ |
身份证号 | (\d{15}$)|(^\d{18}$)|(\d{17}(\d|X|x)$) |
帐号为5-16的数字、字母、下划线 | ^[a-zA-Z][a-zA-Z0-9_]{4,15}$ |
强密码为必须大小写字母、数字、无特殊字符 | ^(?=.*\d)(?=.*[a-z])(?=.*[A-Z])[a-zA-Z0-9]{8,10}$ |
手机号
/^1[3-9]\d{9}$/
qq邮箱
/^[1-9]\d{4,10}@qq\.com$/
网易邮箱
/^[a-zA-Z]\w{5-17}@(126|163)\.com | yeah\.net$/
此文章参考