正则表达式基础知识及常用表达式(RegExp 对象的属性方法,以及一些整数、登录信息验证的表达式)

一、什么是正则表达式

正则表达式是由一个字符序列形成的搜索模式。当你在文本中搜索数据时,你可以用搜索模式来描述你要查询的内容。正则表达式可以是一个简单的字符,或一个更复杂的模式。正则表达式可用于所有文本搜索和文本替换的操作。

二、常使用正则表达式的两个字符串方法

(1)、search() 方法
此方法用于检索字符串中指定的子字符串,或检索与正则表达式相匹配的子字符串,并返回子串的起始位置。

(2)、replace() 方法
用于在字符串中用一些字符替换另一些字符,或替换一个与正则表达式匹配的子串。

三、支持正则表达式的 String 对象的方法

search 检索与正则表达式相匹配的值。
match 找到一个或多个正则表达式的匹配。
replace替换与正则表达式匹配的子串。
split 把字符串分割为字符串数组。

四、正则表达式修饰符(修饰符可以在全局搜索中不区分大小写)

(1)、i 执行对大小写不敏感的匹配。
(2)、g 执行全局匹配(查找所有匹配而非在找到第一个匹配后停止)。
(3)、m 执行多行匹配。

五、正则表达式中的字符用法

(1)、方括号用于查找某个范围内的字符(没有指定的情况下,一个中括号只查找一个字符)
[abc]  查找方括号之间的任何字符。
[^abc]  查找任何不在方括号之间的字符。
[0-9]  查找任何从 0 至 9 的数字。
[a-z]   查找任何从小写 a 到小写 z 的字符。
[A-Z]   查找任何从大写 A 到大写 Z 的字符。
[A-z]  查找任何从大写 A 到小写 z 的字符。
[adgk]  查找给定集合内的任何字符。
[^adgk]  查找给定集合外的任何字符。
(red|blue|green)  查找任何指定的选项。

(2)、元字符是拥有特殊含义的字符 

.  查找单个字符,除了换行和行结束符。
\w  查找单词字符。
\W  查找非单词字符。
\d  查找数字。
\D  查找非数字字符。
\s  查找空白字符。
\S  查找非空白字符。
\b  匹配单词边界。
\B  匹配非单词边界。
\0  查找 NUL 字符。
\n  查找换行符。
\f  查找换页符。
\r  查找回车符。
\t  查找制表符。
\v  查找垂直制表符。
\xxx  查找以八进制数 xxx 规定的字符。
\xdd  查找以十六进制数 dd 规定的字符。
\uxxxx  查找以十六进制数 xxxx 规定的 Unicode 字符。

(3)、量词
n+  匹配任何包含至少一个 n 的字符串。
n*   匹配任何包含零个或多个 n 的字符串。
n?n   匹配任何包含零个或一个 n 的字符串。
n{X}   匹配包含 X 个 n 的序列的字符串。
n{X,Y}  匹配包含 X 至 Y 个 n 的序列的字符串。
n{X,}  匹配包含至少 X 个 n 的序列的字符串。
n$  匹配任何结尾为 n 的字符串。
^n  匹配任何开头为 n 的字符串。
?=n  匹配任何其后紧接指定字符串 n 的字符串。
?!n   匹配任何其后没有紧接指定字符串 n 的字符串。

六、RegExp 对象

在 JavaScript 中,RegExp 对象表示正则表达式,它是对字符串执行模式匹配的强大工具。相关信息参考网址:JavaScript RegExp对象

(1)、RegExp对象的属性
global     RegExp 对象是否具有标志 g。
ignoreCase   RegExp 对象是否具有标志 i。
lastIndex  整数,标示开始下一次匹配的字符位置。
multiline   RegExp 对象是否具有标志 m。
source  正则表达式的源文本。

(2)、RegExp对象的方法

test() 用于检测一个字符串是否匹配某个模式,如果字符串中含有匹配的文本,则返回 true,否则返回 false。
exec() 用于检索字符串中的正则表达式的匹配。该函数返回一个数组,其中存放匹配的结果。如果未找到匹配,则返回值为 null。
compile() 编译正则表达式。

七、正则表达式的常用表达

查找至少一位的数字

 \d{1,}   [0,9]{1,}   \d+    [0,9]+   

贪婪匹配(最大限度的匹配 )与拒绝贪婪匹配(最小限度匹配),例如:

str = "<b>aaa</b><b>bb>b</b><b>ccc</b>";
    //将上面子串中的<b></b>标签替换成<i></i>   下面其中$1表示重复正则中第一个小括号中内容
    console.log(str.replace(/<b>(.*?)<\/b>/g,"<i>$1</i>")); //.*是贪婪匹配(最大) .*?是拒绝贪婪匹配(最小)

重复正则中第一、第二、第三个小括号中内容,如:

str = "04/28/2020"; //西方日期格式,请使用正则替换成中国的[年-月-日]格式
    console.log(str.replace(/(\d{2})\/(\d{2})\/(\d{4})/,"$3-$1-$2"));
    //其中$1,$2 $3表示重复正则中第一、第二、第三个小括号中内容

匹配整数

^[1-9]\d*$    //匹配正整数
^-[1-9]\d*$   //匹配负整数
^-?[1-9]\d*$   //匹配整数
^[1-9]\d*|0$  //匹配非负整数(正整数 + 0)
^-[1-9]\d*|0$   //匹配非正整数(负整数 + 0)

匹配手机号、邮箱、账号、密码、年龄

^[1][0-9]{10}$    //手机号码:验证以1开头的十一位整数的手机号码
^\w+@\w+(\.\w+){1,2}$    //邮箱:以字符串开头(字符个数至少为1) + @ + 字符串(字符个数至少为1) + 以.字符串结尾(此结尾格式允许由有1至2个)
^[0-9A-Za-z_]{6,18}$    //账号:验证6到18位的账号(有效字符为数字、字母以及下划线)
.{6,18}    //密码:验证6到18位的任意字符
^[+]{0,1}(\d?\d?)$    //年龄:验证大于0的任意两位整数

最后:如果自己不确定写出的正则表达式是否正确,可以通过网上的一些正则表达式校验工具来检查校验,如: 正则表达式在线校验

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值