前言
要学习正则表达式,首先我们需要知道什么是正则表达式,它的作用是什么,最后我们需要在哪里使用它
一、正则表达式是什么?
正则表达式的全名是regular expression
虽然看起来正则特别乱特别复杂,但实际上它是一个有规则的表达式,而它的的作用就是用一段代码来表示一个区域的字符,然后通过它来匹配查找你需要的内容,简而言之,正则表达式就是一个用于查找的含有匹配字符串或匹配元字符的字符串。
二、创建正则表达式
正则表达式的创建方式有两种:
第一种是使用构造函数new RegExp来创建:
var reg = new RegExp( 正则表达式字符串[, 匹配模式] );
第二种就是字面量来创建:
var reg = /正则表达式/;
一般我们使用第二种,这种方式书写简介明了,当然,两种创建方式的效果是一样的。
三、字符
3.1 基本元字符
. //表示任一个非换行的字符
() //表示分组和提高优先级
[] //表示一个字符, 出现在 [] 中的任意一个字符
| //或着,表示两个正则表达式只要满足一个就可以
3.2 限定元字符
* 紧跟前面的一个字符或一组字符出现 0 次到多次
+ 紧跟在前面的字符出现 1 次到多次
? 紧跟在前面的字符出现 0 次或 1 次
{数字} 紧跟在前面的字符出现指定次数
{数字,} 紧跟在前面的字符至少出现指定次数
{数字, 数字} 紧跟在前面的字符出现的次数范围
3.3 首尾
^ 表示必须以 xxx 开头
$ 表示必须以 xxx 结尾
四、正则表达式的使用
匹配方法: 正则表达式.test(字符串)
举几个简单例子:
1.正则表达式匹配手机号:
//手机号
//首先,手机号码1开头,所以^1来表示
//[0-9]{9}表示接下来的9位数都是0-9之间的数字包括0和9
//[0-9]$表示数字结尾
var reg = /^1[0-9]{9}[0-9]$/
//然后输入一个11位数的手机号,我随即输入的
var str = "15256865165"
//控制台输出 ,true表示匹配成功,false表示不匹配
console.log(reg.test(str));
显示的是true,说明匹配成功了,如果显示的false就说明我们的字符串与正则不匹配,这样我们就可以通过正则来判断出入的字符串是否符合我们的需求了
2.匹配密码
//密码
//^[a-zA-Z]以字母开头
//[0-9a-zA-Z]{5,11}$字母数字皆可,$限制密码位数,6-12位
var reg = /^[a-zA-Z][0-9a-zA-Z]{5,11}$/;
var str = "a145435163";
console.log(reg.test(str));
总结
正则表达式主要使用在匹配信息,特别是注册、登录、验证这些需要录入重要信息的地方,基本上都会使用正则来做判断,所以正则表达式在书写时要求特别严格,绝不能犯错。