正则表达式

正则表达式(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              匹配非字母和数字及_

 

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

\0                匹配 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));

相关文章

jquery.validate使用攻略(表单校验) 目录 jquery.validate...
/\s+/g和/\s/g的区别 正则表达式/\s+/g...
自整理几个jquery.Validate验证正则: 1. 只能输入数字和字母...
this.optional(element)的用法 this.optional(element)是jqu...
jQuery.validate 表单动态验证 实际上jQuery.validate提供了...
自定义验证之这能输入数字(包括小数 负数 ) <script ...