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
>