欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

正则表达式(Regular expression)入门介绍

程序员文章站 2022-06-16 11:43:19
正则表达式(Regular expression)学习记录1作为学习更新类文章,就不像解决问题向文章那样步骤清晰,可能会有点拖泥带水,这只是我的个人学习记录,感兴趣的可以一起学习正则表达式在程序圈内也算是一个很受欢迎的工具,利用好正则表达式能有效提高我们的工作效率,有效减少if-else的使用次数分享一个收藏很久的正则在线验证工具https://regexr.com/2020-12-121.初尝!正则表达式创建以及简单字符串验证let reg = new RegExp(123)console...

正则表达式(Regular expression)学习记录1

作为学习更新类文章,就不像解决问题向文章那样步骤清晰,可能会有点拖泥带水,这只是我的个人学习记录,感兴趣的可以一起学习

正则表达式在程序圈内也算是一个很受欢迎的工具,利用好正则表达式能有效提高我们的工作效率,有效减少if-else的使用次数

分享一个收藏很久的正则在线验证工具 https://regexr.com/

2020-12-12

1.初尝!正则表达式创建以及简单字符串验证

let reg = new RegExp(123)
console.log(reg)	// /123/

let reg1 = /123/
console.log(reg1)	// /123/

以上为正则表达式的两种创建方式,个人感觉用用两根正斜线创建更快捷

console.log(reg1.test("123")); // true
console.log(reg1.test("012345")); // true
console.log(reg1.test("012453456")); // false

Javascript 中的Regexp 实例方法test可以验证字符串,返回true或者false。从上边的验证可以看出一个只要包含连续的“123”的字符串就符合 /123/ 这样的镇这表达式。

So 一个朋友产生了不少疑问:如果是验证不同的英文单词,不同数字符号,甚至是一段汉字怎么办

2.甜头!了解正则表达式中的特殊字符

下边是一些比较常用的字符

符号 描述
\w 匹配字母、数字、下划线(word)
\d 匹配数字(digital)
* 匹配0或多个
+ 匹配至少1个
匹配0或者1个

这里能看出来这里的反斜线“\”在平时的学习工作中也有用到,比如\t,\n等替换符号。

下边我尝试着用一下元字符

let reg3 = /^\w\d$/;

console.log(reg3.test("t1"));   // true
console.log(reg3.test("ty"));  	// false

// 顺便介绍一下表达式中的^和$,分别是匹配字符串的开头和结尾。

在各种教程网站像菜鸟,MDN这些都有较全面的符号解释用法,不必死记硬背,一般工作能用到的也不多,需要用到的时候再查也可

3.看看网上常见的正则

话说实践出真知,牛犊不怕虎。还得直接上菜,看看能不能吃

下面是一段我简化过的正则表达式,关于手机号码的

let reg4 = /^(13[0-9]|14[01456789])\d{8}$/

console.log(reg4.test("13000000000"));  //true
console.log(reg4.test("1300000"));      //false
console.log(reg4.test("14400000000"));  //true
console.log(reg4.test("14200000000"));  //false
console.log(reg4.test("18888888888"));  //false

/* 
可以看出正则表达式中有两个新符号 “|”,“[]”,“()”,"{}"
|:这条竖线表示 “或者”;
[]:表示匹配其中的一个字符,里边可以是范围像[a-zA-Z0-9],
	这就是匹配一个无论大小写字母或者一个数字;
():表示 括号内的部分被看作一个整体来进行匹配;
{}:可以规定某种或某个字符的次数,上边的 \d{8}$ 表示以 8位数字结尾。
	同时也可以表示一个范围,像\d{3,7}表示需要 3-7位的数字(包括3和7);

So 上边的表达式中表示可以匹配以13?或14?开头,并且后边的数字还有8位。
能被匹配的字符串可以是:13088888888,13100000000,14188888888
不能被匹配的字符串有:142开头的,143开头的,其他开头的以及不满足11位数字的
*/ 

再看看经常使用的邮箱正则:

let reg5 = /^([a-zA-Z0-9_-])+@([a-zA-Z0-9_-])+(.[a-zA-Z0-9_-])+/

console.log(reg5.test("kkkK3Rr@example.com"));  //true
console.log(reg5.test("@example.com"));         //false
console.log(reg5.test("kkkK3Rr@.com"));         //false
console.log(reg5.test("123456@mple.hahah"));    //true

/* 
这段正则是这样的:首先以必须至少一个大小写字母数字或者下划线减号开头,紧接着加上“@”,
再然后必须跟上至少一个大小写字母数字或者下划线减号,再然后必须跟上一个点“.”,
再接着至少一个大小写字母数字或者下划线减号结尾。
*/

掌握基本的用法,能看懂正则表达式要表达的意思就算入门啦!接下来就是多看看别人写的正则,或者根据自己的项目中要求练习一下。

建议大概看看教程网站的正则符号大全,了解一些常用的。

谢谢观看!

本文地址:https://blog.csdn.net/jianglongfei007/article/details/111086790