JS中的正则表达式
2018-06-24 02:01:01来源:未知 阅读 ()
>>> 关于正则表达式
正则表达式在网站开发过程中,用来匹配验证字符串是否规范,用途非常广泛,下面简单了解正则表达式:
一、正则表达式的声明
1、字面量声明:
/ 正则表达式规则 / 匹配模式
例:var reg = /^abc$/i;
2、new关键字声明:
var reg = new RegExp("^abc$",i);
二、正则表达式规则的描述
规则描述:
符号 | 描述 |
/.../ | 代表一个模式的开始和结束 |
^ | 匹配字符串的开始 |
$ | 匹配字符串的结束 |
\s | 任何空白字符 |
\S | 任何非空白字符 |
\d | 匹配一个数字字符,等价于[0-9] |
\D | 除了数字之外的任何字符,等价于[^0-9] |
\w | 匹配一个数字、下划线或字母字符,等价于[A-Za-z0-9] |
\W | 任何非单字字符,等价于[^A-Za-z0-9_] |
. | 除了换行符之外的任意字符 |
量词描述:
符号 | 描述 |
{n} | 匹配前一项n次 |
{n,} | 匹配前一项n次,或者多次 |
{n,m} | 匹配前一项至少n次,但是不能超过m次 |
* | 匹配前一项0次或多次,等价于{0,} |
+ | 匹配前一项1次或多次,等价于{1,} |
? | 匹配前一项0次或1次,也就是说前一项是可选的 |
符号:
符号 | 描述 |
| | 匹配选择字符中任意一个,如 p|q,可匹配q或p |
() | 分组 |
[] | 要匹配的数据 |
^ | 取反 |
三、正则表达式的常用模式
1、g 表示全局匹配。不加g表示只匹配第一个符合要求的字符串;
"aaa".replace(/a/,"*"); --> "*aa"
"aaa".replace(/a/g,"*"); --> "***"
2、i 表示忽略大小写匹配,默认要求大小写也必须符合正则要求。
"aAa".replace(/A/,"#"); --> "a#a"
"aAa".replace(/A/i,"#"); --> "#Aa"
"aAa".replace(/A/gi,"#"); --> "###"
3、m 表示多行匹配模式:
如果不带m,表示一个字符串只有一个开头一个结尾;
如果带m,那么对于多行字符串,可以有多个开头多个结尾。
例一:
var str="This is an\n antzone good";
var reg=/an$/;
console.log(str.match(reg));
不能够匹配字符串"an",尽管"an"后面已经换行了,但是并没有采用多行匹配,所以不是字符串行的结尾。
例二:
var str="This is an\n antzone good";
var reg=/an$/m;
console.log(str.match(reg));
可以匹配字符串"an",因为采用了多行匹配。
例三:
var reg = /^b/;
var str = 'test\nbbs';
execReg(reg,str);
匹配失败,因为字符串的开头没有b字符。但是加上m修饰符之后:
例四:
var reg = /^b/m;
var str = 'test\nbbs';
execReg(reg,str);
匹配到b,因为加了m修饰符之后,^已经表示行首,由于bbs在字符串第二行的行首,所以可以成功地匹配。
[多行字符串]
① 字符串中用\n表示换行:"abc\nabc".replace(/^a/gm,"*");
② ES6中可以用反引号``表示字符串,这种字符串,支持直接换行。
4、检测方法
(1)reg.test(str):检测一个字符串是否符合正则要求,返回true或false。
(2)reg.exec(str):检测一个字符串是否符合正则要求,符合返回数组,不符合返回null。
返回数组的格式:
① index属性: 表示字符串中,第几个字符,开始匹配正则。
② input属性: 表示完整的被检索字符串。
③ 下标第0个: 表示 符合正则要求的 字符串子串。
④ 下标从1往后: 表示 匹配正则中()包裹的字符串子串。也就是说,正则中有几个(), 返回的数组中就有几个下标。
例:
/12(3)(\d)56/.exec("aaa123056bbb");
[
0:"123056",
1:"3",
2:"0",
index:3,
input:"aaa123056bbb",
length:3
]
四、正则表达式常用验证练习
1、验证邮箱
var reg = /^[a-zA-Z0-9]+@[a-zA-Z0-9]+\.[a-zA-Z]+(\.[a-zA-Z]{2,3})?$/;
var mail = "123@qq.com";
console.log(reg.test(mail));
2、验证邮政编码(6位)
var reg = /^\d{5}$/;
var mailno = "251400";
console.log(reg.test(mailno));
3、验证手机号(第一位为1,第二位为3/5/7/8,共11位)
var reg = /^1(3|5|7|8)\d{9}$/;
var phone = "17862009622";
console.log(reg.test(phone));
4、验证年龄(1~120)
var reg = /^(\d|[1-9]\d|1[01]\d|120)$/;
// var reg = /^((1[0-1]|[1-9])?\d|120)$/;
var age = "121";
console.log(reg.test(age));
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
下一篇:JS基础速成(一)
- JavaScript函数表达式详解及实例 2020-03-25
- Javascript中的经典技巧 2020-03-20
- 带你了解JavaScript中的函数 2020-03-08
- 默认让页面的第一个控件选中的javascript代码 2020-02-20
- 详谈构造函数加括号与不加括号的区别 2020-01-17
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash