问题1:
问题2:比如验证电子邮件,身份证,是不是数...
解决之道
js设计者给我们提供了一个新的技术--正则表达式(RegExp对象) regular expression.
在计算机科学中,是指一个用来描述或者匹配一系列符合某个句法规则的字符串的单个字符串。
正则表达式是很多语言都支持的。
基本概念:一个正则表达式,就是用某种模式去匹配一类字符串的一个公式,反映到js中就是一个RegExp对象。
快速入门案例:
给你一个字符串,找出连续四个数字的字符段
创建正则表达式有两种方式:隐式和显式。
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>Insert title here</title> </head> <body> <textarea id="content" rows="10" cols="20"></textarea> <input type="button" onclick="test1()" value="测试"/> </body> <script language="javascript" type="text/javascript"> <!-- //又犯了老错误,将js代码写在前面了。 function test1(){ //得到用户的内容 //window.alert(content); var con=content.innerText; var myReg=/(d){4}/gi; //window.alert(content.innerText); while(res=myReg.exec(con)){ window.alert("找到"+res); } } //--> </script> </html>
上述代码在IE浏览器中运行有效,在谷歌浏览器中无效(没有报错)。
exec()方法
返回一个数组,其中存放匹配的结果。如果未找到匹配,则返回值为null.
匹配的结果是一个数组。
第0个元素是匹配到的文本,第1个元素是与RegExpObject的第1个子表达式匹配的文本(我猜测是最后一个匹配文本的最后一个字符),第2个元素是与RegExpObject的第2个子表达式匹配的文本(如果有的话),依次内推。
小结:
1.创建一个RegExp对象有两种方法
(1)隐式创建: var reg=/正则表达式规范/gi;[g表示全局匹配,i表示区分大小写]
g--global,它声明了给定的正则表达式是否执行全局匹配;
i--ignoreCae,是否执行区分大小写匹配。
(2)显示创建: var reg=new RegExp(正则表达式,"gi");
var myReg=new RegExp("(\d){4}","gi");