正则表达式
说起正则表达式,那么要问了,什么是正则表达式?
正则表达式是一个描述字符模式的对象,它是由一些特殊符号组成的,这些符号和在SQL Server中的通配符一样,其组成的字符模式用来匹配各种表达式。
那么,为什么需要正则表达式呢?
在开发HTML表单时经常会对用户输入的内容进行验证。例如,检验邮箱是否正确,密码是否为空等。那么就需要正则表达式来进行验证。
正则表达式的特点是什么?
1.定义正则表达式
1)普通方式
定义普通的语法格式如下:
var reg=/表达式/附加参数
表达式:一个字符串代表了某种规则,其中可以使用某些字符来代表特殊的规则。
附加参数:用来扩展表达式的含义,主要有以下三个参数。
g:代表可以进行全局匹配。
i:代表不区分大小写。
m:代表可以进行多行匹配。
2)构造函数
定义构造函数的语法如下:
var reg=new RegExp(“表达式”,“附加参数”);
普通方式中的表达式必须是一个常量字符串,而构造函数中的表达式可以是常量字符串,也可以是JavaScript敞亮。
2.据点(.)元字符
句点元字符是使用范围最广的一个元字符。它可以匹配字母字符(不论大小写),也可以匹配数字。
. 元字符的缺点:
跟它的优点一样,因为可以匹配所有字符,包括原先的标点符号。所有使用.元字符是非常危险的事情。
3.\w元字符
\w元字符只匹配英文字母字符、数字和下划线。与.元字符不同,因为\w元字符不匹配象形符号、标点符号,在某些实现中也不匹配非英语语言中的字符。
4.\W元字符
\W元字符跟\w元字符相反,\W元字符匹配\w不匹配的字符。
5.数字和非数字
许多正则表达式的实现用字符来表示数字或者非数字。
其中,元字符\d被广泛的表示数字。而元字符\D则在支持\d元字符的实现中被用于表示非数字。
1)\d元字符
\d元字符匹配一个0-9之间的数字。
2)\D元字符
\D元字符匹配\d元字符不匹配的其他字符。
6.表达式的模式
表达式的模式分为:简单模式和复合模式。
1)简单模式
简单模式是指通过普通字符的组合来表达的模式。如:
var reg=/china/;
var reg=/abc8/;
简单模式只能表示具体的匹配,如果要匹配一个邮箱或者电话号码,就不能使用具体的匹配,这就要用到复合模式。
2)复合模式
复合模式是指含有通配符来表达的模式,这里的通配符与SQL Server中的通配符相似。如:
var reg=/^\w+$/;
其中,+、\w、^和$都是通配符,代表着特殊的含义,因此复合模式可以表达更为抽象的规则模式。
7.正则表达式高级规则
匹配次数中的贪婪与非贪婪
贪婪模式
见名字意,在字符串中尽可能的匹配最多次数的表达式,就叫做贪婪模式。
非贪婪模式
在修饰匹配次数的特殊符号后再加上一个 "?" 号,则可以为表达式尽量少的匹配,或者不匹配,这就是非贪婪模式。