1.正则表达式
普通方式声明正则表达式
var reg=/表达式/附加参数;
使用函数声明正则表达式
var reg=new RegExp("表达式","附加参数")
简单模式
var reg=/china/;
var reg=/abc8/;
复合模式
var reg=/^\w+$/;
RegExp对象方法
test: 检索字符串中指定的值,返回true或false
exec: 在字符串中执行匹配搜索,返回结果数组
lastIndex:
搜索的字符下标起始位置
<script>
var
str='you
are a boy';
var
reg=new
RegExp('o','g');
reg.lastIndex=0;
console.log(reg.exec(str));
console.log(reg.exec(str));
console.log(reg.exec(str));
console.log(reg.exec(str));
</script>
模式修饰符参数
global/g 全局模式,应用于所以字符串
ignoreCase/i 忽略大小写
multiline /m 多行匹配模式
字符串匹配正则表达式
String.match(reg)
返回的是匹配到的数组结果
<script>
var
str='hello
world';
reg=/o/g;
console.log(str.math(reg));
</script>
检索与正则表达式相匹配的值
String.search(reg)
返回的是匹配值得索引
<script>
var
str='hello
world';
reg=/z/g;
console.log(str.search(reg));
</script>
RegExp常用符号
/.../ 代表一个模式的开始和结束
^ 匹配字符串的开始
$ 匹配字符串的结束
\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次,也就是说前一项是可选的,等价于 {0,1}
| 匹配选择字符中任意一个,如p|q,可匹配q或p
() 分组
[ ] 要匹配的数据
^ 取反
验证邮政编码
/^\d{6}$/
对年龄0-120岁进行验证
<script>
var
age='110';
var
reg=/^(1[0-1]|[1-9])?\d$|^120$/;
alert(reg.test(age)?'年龄在0-120之间':'年龄不在0-120之间');
</script>