正则表达式,就是用某种模式去匹配一类字符串的公式
正则表达式往往需要2部分内容:被验证的字符串和正则表达式。
####一、正则表达式的定义方法
在JavaScript中,正则表达式是由一个RegExp对象表示的,利用RegExp对象来完成有关正则表达式的操作和功能。
正则表达式的定义共有2种方式:
(1)显式定义;
(2)隐式定义;
#####1、显式定义
显式定义必须是使用new关键词来定义。
语法:
var 变量名 = new RegExp("正则表达式模式");
说明:
显式定义的正则表达式必须要使用双引号括起来,这里要注意字符串的转义。
#####2、隐式定义
语法:
var 变量名 = /正则表达式模式/;
说明:
隐式定义的正则表达式开头和结尾都必须是斜杠“/”。记得使用隐式定义的正则表达式是不需要使用双引号括起来的,这一点跟显式定义的正则表达式不一样!
隐式定义是最常用的方式,代码量少并且方便。
举例:
var myregex = new RegExp("[0-9]");
等价于
var myregex = /[0-9]/;
###test()方法 ####一、test()方法 **语法:** regex.test(str)
说明:
regex为必选项,表示正则表达式模式
str为必选项,表示字符串
该方法返回一个boolean值。也就是说,test()方法检查字符串str是否符合正则表达式模式regexp,如果符合,则返回true;如果不符合,则返回false。
验证邮政编码的正则表达式模式为“ \d{6}”。“\d{6}”表示6个字符都是数字,如果某一个字符串符合“6个字符都是数字”这种模式,那么test()方法就返回true,如果不符合,则返回false。
例如字符串“510632”就符合正则表达式模式“\d{6}”。而字符串“abc123”或“lvyestudy”就不符合正则表达式模式“\d{6}”,因为“abc123”虽然是6个字符,但是不符合所有字符都是数字。而“lvyestudy”不符合得原因有2点:①字符超过6个字符;②字符都不是数字。
###常用元字符 在正则表达式中,包括2种字符:
(1)普通字符;
(2)特殊字符(元字符);
普通字符就是az、09这类常见的字符。其中特殊字符又称为“元字符”。元字符之所以叫特殊字符,就是它的特点跟普通字符不一样。例如邮政编码中,我们限定只能输入6个数字,那“数字”这个概念怎么理解呢?这个时候我们就用到了元字符\d来代替。
0\d{2}-\d{8}
元字符 说明
\d 匹配数字,相当于[0-9]
\D 匹配非数字,相当于[ ^0-9]
\w 匹配字母或数字或汉字或下划线
\W 匹配任意不是字母、数字、汉字或下划线的字符
\s 匹配任意的空白符,如空格、换行符、制表符等
\S 匹配任意不是空白符的字符
.(点号) 匹配除了换行符以外的任意字符
[…] 匹配方括号中的所有字符
[ ^…] 匹配非方括号中的所有字符