正则表达式是很常用的客服端验证方法;先来学习javascript的正则表达式:
在javascript中,正则表达式是一个类RegExp,类似于String,所以在创建RegExp实例和String一样,也需要单引号或双引号:
var pattern=new RegExp("ok"); var pattern = new RegExp("ok","ig"); //i:忽略大小写,g:全部匹对,并不是从开始到结尾匹对,m:多行匹对
javascript也提供了一种简写的方式:
var box = /box/; //直接用两个反斜杠 var box = /box/ig; //在第二个斜杠后面加上模式修饰符
实现验证的两个方法:pattern.test(str) , alert(pattern.exec(str));
test 返回 true 或 false,一般用这个;
exec 返回配对上的数组或单个 ,或null
而String提供的4种正则验证方法:
str.match(pattern); 返回数组或null,同exec
str.search(pattern); 返回第一次出现的位置,否则为-1
str.replace(pattern, 'Tom'); 将匹对上的替换掉
str.split(pattern); 以某个正则实例将一段字符串,拆分成几个字符串数组
常用字符
1、定位字符
^ 行首匹配
$ 行尾匹配
\b几个单词中寻求匹对单词
var pattern = /^box/ig; 表示从str的首字符开始匹对 var pattern = /box$/ig; 表示从str的最尾端字符开始匹对 var pattern = /box\b/ig; 用在一句话中是否存在这样的一个单词 var str = 'wwwwwww box wwww';
2、匹对个数
x+ 匹配至少一个 x
(xyz)+ 匹配至少一个(xyz)
x{m,n} 匹配最少 m 个、最多 n 个 x 只能是连续的xxxxxx
<script type="text/javascript"> var pattern = /x{2,9}/; var str = '1111wwwwwwwboxboxboxboxboxboxwwww'; alert(pattern.test(str)); </script> 为什么是false
3、选择匹配,选择符 "|" ;括弧分组匹配 \1或$1:第一组,\2或$2:第二组 ... .....通过RexExp.$1调用
var pattern = /8(.*)8/; //获取 8..8 之间的任意字符 var str = 'This is 8google8'; alert(pattern.test(str)); alert(RegExp.$1); //得到第一个分组里的字符串内容 google var pattern = /(.*)\s(.*)/; var str = 'google baidu'; var result = str.replace(pattern, '$2 $1'); //将两个分组的值替换输出 baidu google document.write(result);
后续