加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

正则表达式

发布时间:2020-12-14 06:18:49 所属栏目:百科 来源:网络整理
导读:正则表达式(regular expression)是一个描述字符模式的对象。 正则表达式主要用来验证客户端的输入数据。 1,创建正则表达式的两种方式 一种是采用 new 运算符,另一个是采用字面量方式。 var box = new RegExp(‘box‘); // 第一个参数字符串 var box = new

正则表达式(regular expression)是一个描述字符模式的对象。

正则表达式主要用来验证客户端的输入数据。

1,创建正则表达式的两种方式

一种是采用 new运算符,另一个是采用字面量方式。
var box = new RegExp(‘box‘); //第一个参数字符串
var box = new RegExp(‘box‘,‘ig‘); //第二个参数可选模式修饰符


var box = /box/; //直接用两个反斜杠
var box = /box/ig; //在第二个斜杠后面加上模式修饰符
模式修饰符的可选参数

参 数 ? 含 义
i ? ? ? ? ?忽略大小写
g ? ? ? ? 全局匹配
m ? ? ? 多行匹配

2,测试正则表达式

RegExp 对象的方法

方 法 ? 功 能
test ? ?在字符串中测试模式匹配,返回 true 或 false
exec ?在字符串中执行匹配搜索,返回结果数组

?

String 对象中的正则表达式方法
方 法 ? 含 义
match(pattern) ? ?返回 pattern 中的子串或 null
replace(pattern,replacement) ? ? 用 replacement 替换 pattern
search(pattern) ? ?返回字符串中 pattern 开始位置
split(pattern) ? ?返回字符串按指定 pattern 拆分的数组

?

3,获取控制

正则表达式元字符是包含特殊含义的字符。它们有一些特殊功能,可以控制匹配模式的
方式。反斜杠后的元字符将失去其特殊含义。


字符类:单个字符和数字
元字符/元符号 ? 匹配情况
. ? ? ? ? ? ? ? ? ?匹配除换行符外的任意字符
[a-z0-9] ? ? ?匹配括号中的字符集中的任意字符
[^a-z0-9] ? ?匹配任意不在括号中的字符集中的字符
d ? ? ? ? ? ? ? ?匹配数字
D ? ? ? ? ? ? ? 匹配非数字,同[^0-9]相同
w ? ? ? ? ? ? ? 匹配字母和数字及_
W ? ? ? ? ? ? ?匹配非字母和数字及_

?

字符类:空白字符
元字符/元符号 匹配情况

? ? ? ? ? ? ? ?匹配 null 字符
b ? ? ? ? ? ? ? ?匹配空格字符
f ? ? ? ? ? ? ? ? 匹配进纸字符
n ? ? ? ? ? ? ? ?匹配换行符
r ? ? ? ? ? ? ? ? 匹配回车字符
t ? ? ? ? ? ? ? ? 匹配制表符
s ? ? ? ? ? ? ? ?匹配空白字符、空格、制表符和换行符
S ? ? ? ? ? ? ? ?匹配非空白字符


字符类:锚字符
元字符/元符号 匹配情况


^ ? ? ? ? ? ? ? ? ?行首匹配
$ ? ? ? ? ? ? ? ? 行尾匹配
A ? ? ? ? ? ? ? ?只有匹配字符串开始处
b ? ? ? ? ? ? ? ?匹配单词边界,词在[]内时无效
B ? ? ? ? ? ? ? ?匹配非单词边界
G ? ? ? ? ? ? ? ?匹配当前搜索的开始位置
Z ? ? ? ? ? ? ? ? 匹配字符串结束处或行尾
z ? ? ? ? ? ? ? ? 只匹配字符串结束处


字符类:重复字符
元字符/元符号 匹配情况


x? ? ? ? ? ? ? ? ?匹配 0 个或 1 个 x
x* ? ? ? ? ? ? ? ? 匹配 0 个或任意多个 x
x+ ? ? ? ? ? ? ? ?匹配至少一个 x
(xyz)+ ? ? ? ? ?匹配至少一个(xyz)
x{m,n} ? ? ? ? 匹配最少 m 个、最多 n 个 x

?

字符类:替代字符
元字符/元符号 匹配情况


this|where|logo ? ? ? ? 匹配 this 或 where 或 logo 中任意一个


字符类:记录字符
元字符/元符号 匹配情况


(string) ? ? ? ? ? ?用于反向引用的分组
1 或$1 ? ? ? ? ? 匹配第一个分组中的内容
2 或$2 ? ? ? ? ? 匹配第二个分组中的内容
3 或$3 ? ? ? ? ? 匹配第三个分组中的内容

?

贪 婪 ? 惰 性
+ ? ? ? ? ?+?
? ? ? ? ? ??
* ? ? ? ? ?*?
{n} ? ? ?{n}?
{n,} ? ? {n,}?
{n,m} ? {n,m}?

?

4,常用的正则

1.检查邮政编码
var pattern = /[1-9][0-9]{5}/; //共 6 位数字,第一位不能为 0
var str = ‘224000‘;
alert(pattern.test(str));
2.检查文件压缩包 var pattern = /[w]+.zip|rar|gz/; //w 表示所有数字和字母加下划线 var str = ‘123.zip‘; //.表示匹配.,后面是一个选择 alert(pattern.test(str));
3.删除多余空格 var pattern = /s/g; //g 必须全局,才能全部匹配 var str = ‘111 222 333‘; var result = str.replace(pattern,‘‘); //把空格匹配成无空格 alert(result);
4.删除首尾空格 var pattern = /^s+/; //强制首 var str = ‘ goo gle ‘; var result = str.replace(pattern,‘‘); pattern = /s+$/; //强制尾 result = result.replace(pattern,‘‘); alert(‘|‘ + result + ‘|‘);
var pattern = /^s*(.+?)s*$/; //使用了非贪婪捕获 var str = ‘ google ‘; alert(‘|‘ + pattern.exec(str)[1] + ‘|‘);
var pattern = /^s*(.+?)s*$/; var str = ‘ google ‘; alert(‘|‘ + str.replace(pattern,‘$1‘) + ‘|‘); //使用了分组获取

5.简单的电子邮件验证 var pattern = /^([a-zA-Z0-9_.-]+)@([a-zA-Z0-9_.-]+).([a-zA-Z]{2,4})$/; var str = ‘[email?protected]‘; alert(pattern.test(str)); var pattern = /^([w.-]+)@([w.-]+).([w]{2,4})$/; var str = ‘[email?protected]‘; alert(pattern.test(str));

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读