JS正则表达式
正则表达式使用单个字符来描述匹配一系列符合某个句法规则的字符串搜索模式
正则表达式对象方法
<!DOCTYPEhtml>
<htmllang="en">
<head>
<metacharset="UTF-8">
<title></title>
<script>
varstr='good';
/*m表示多行匹配
i表示忽略大小写 g表示全局匹配*/
varreg=newRegExp('o','g');
//匹配正则返回一个数组
//lastIndex是搜索的字符下标起始位置
reg.lastIndex=0;
console.log(reg.exec(str));//exec在字符串中进行匹配搜索,返回结果数组
console.log(reg.exec(str));
console.log(reg.exec(str));
console.log(reg.exec(str));
</script>
</head>
<body>
</body>
</html>
注意:打印四次,前两次返回的为两个o,第三次为null,从第四次开始返回第一个o查找。
string字符串对象方法:常用的有match,search等方法
varstr='hellow
world';
varreg=/o/ig;
//字符串匹配正则表达式,返回的是匹配到的结果数组
console.log(str.match(reg))
varstr='hellow
world';
varreg=/l/;
//检索与正则表达式相匹配的值,返回的是匹配值得索引
console.log(str.search(reg))
RegExp常用符号
正则表达式--验证年龄
<script>
//120岁以下匹配成功
varage=9;
varreg=/^(1[0-1]|[1-9])?\d$|^120$/;
alert(reg.test(age)?'匹配成功':'匹配失败');
</script>
正则表达式--验证注册页面
//密码只能有英文字母和数字组成,长度为4-10个
varpassword='aaa-123';
varreg=/^[a-zA-Z0-9]{4,10}$/;
alert(reg.test(password)?'匹配成功':'匹配失败');
//用户名只能用英文字母和数字组成,第一位只能由英文字母组成,长度4-16位
varname='a12345';
varerr='110';
varreg=/^[a-zA-Z][A-Za-z0-9]{4,16}$/;
alert(re.test(na));
//生日的年份子啊1900-2009之间,生日的格式为1980-5-12或1988-05-04的形式
varbirth='1996-09-18';
varreg=/^(19\d{2}|200\d)-(0?[1-9]|1[0-2])-(0?[1-9]|[1-2]\d|3[0-1])$/;
alert(reg.test(birth)?'匹配成功':'匹配失败');