补充:eval():字符串解析。
把一段字符串解析成为浏览器可以识别的js代码。
缺点:危险性高
例子:eval(“var a=34”);alert(a);//34
eval("function box(){alert(1)}");box()//1
一、内置对象之正则:RegExp();
用于表单验证
表单验证:
<form id="form" action="http://www.baidu.com" method="post"></form>
form.onsubmit = function(){
if(true){
//当正则通过时return true;
return true;
}else{
//当正则不通过时return false;
return false
}
}
注意:必须要严格模式,比如reg=/^表达式$/。
1.正则创建:
1)两种方式:
字面量方式:
var reg = /正则表达式/;
var reg = /^wW$/;
2)构造函数方式
var reg2=new RegExp("正则表达式");
var reg2=new RegExp("正则表达式","修饰符");
var reg2=new RegExp("^wW$","i");
reg.test(str);//检测一个字符串是否符合正则reg的要求。
2.正则的一些字符:
1)单字符
^:表示规则的开始
$:以某种规则结束
+:匹配至少一个+前面的字符
*:匹配至少0个*前面的字符
?:匹配?前面的字符0次或1次
.:匹配任何一种字符,除\n以外
\:把在正则中有特殊含义的字符转义成普通字符来使用。
2)字符组合:
\d:匹配0-9的数字。
\D:匹配非数字。
\w:匹配数字字母下划线
\W:非匹配数字字母下划线(除了下划线以外的特殊字符)
\s:匹配空格符
\S:匹配非空格字符
|:表示或
3)括号:
():
这是优先级:
常与|使用
{}:
当{m}只有一个值,代表匹配大括号前的字符m次
{m,n}代表匹配大括号前的字符最少m次,最多n次
{m,}代表匹配大括号前的字符最少m次,最多无数次
[]:代表某些字符的组合来匹配
[^m]匹配非字符m的所有字符
[0-9]
[02-9]
[^(0-9a-zA-Z_)]:\W
[\u4e00-\u9fa5] 表示任意一个中文字符
修饰符:
i:不区分大小写
g:表示全局查找
3.正则方法的使用:
1)test();
2)reg.exec(str);返回匹配的字符,字符以数组的形式存在,只返回一个匹配的字符。
例子:var reg = /wc/;
var str = "this erwc eris wcer";
alert(reg.exec(str));//wc
3)str.search(reg);根据正则匹配查询,如果在字符里有匹配的字符,返回所在下标,如果没有,返回-1 例子:
var reg = /wt/;
var str = "this erwtc eris wter";
alert(str.search(/wt/)); //7(只找到第一次出现的)
4)str.match(reg);根据正则匹配查询,把正则所匹配的所有字符,以数组的形式返回,返回所有匹配的字符。
var str = "this erwtc eris wter";
console.log(str.match(/er/g));//["er", "er", "er"]
5)str.replace(reg,"替换的内容");根据正则匹配,把 替换的内容 替换所有正则匹配的字符。
例子:var reg = /er/g;
var str = "this erwtc eris wter";
console.log(str.replace(/e/g,"*"));
//this *rwtc *ris wt*r
4.例子
1.邮箱的验证
var reg = /^[0-9a-zA-Z]{1,15}@[0-9a-zA-Z]{1,15}(\.[a-zA-Z]{2,4}){1,2}$/