正则表达式和辅助特效
一: 正则表达式
1,:普通形式和构造函数形式;
1,1普通形式; 语法
var reg = / 表达式 / 附加参数
表达:需要匹配的
附加参数:用来扩展表达式的含义
g:代表进行全局匹配 i:代表不区分大小写 m:代表可以进行多行匹配
1,2构造函数形式
var reg = new RegExp("表达式","附加参数");
普通参数必须是一个常量的,构造参数可以是一个变量的
2,表达式模式
2,1简单模式:普通字符组成的表达模式
var reg = /changsha/; var reg =/chang/;
简单模式只能进行具体的匹配
2,2复合模式:含有通配符来匹配
var reg =/^ \w + $/
2,3 RegExp对象
格式:正则表达式对象实例.test();
exec() 正则匹配 test() 检索指定值
2,4 String对象的方法
match 匹配 search 检索 replace 替换 split 分割
2,5 正则表达式常用的匹配符号
常用符号
/../代表开始和结束 ^ 匹配开始 $匹配结束 \s任何空白字符 \S任何非空白字符 \d数字 \D非数字 \w 数字,字母,下划线 \W 非 数字,字母,下划线 . 换行符之外的任意字符
重复符号
{n} 出现n次 {n,}出现n次以上 {n,m}出现n次到m次之间 + 一次或多次 * 0次或多次 ? 0次或一次
二: 辅助效
1, 下拉款实现级联效果
javaScript也拥有面向对象语言的,标签也可以是一个对象
下拉框对象
select对象的 常用 事件,方法 和 属性
事件;
onchange 当改变选项时调用
方法;
add()向下拉框添加一个属性
属性;
options[] 返回下拉框中的选项 selectIndex 设置被选下拉框的索引 length 设置下拉框中选项的数组
options[]集合返回的是select的option中的一个数组
重点:
options.length=0,select对象中所有的选项都会被清除
selectIndex和lengt属性的应用
<html> <head> <script type="text/JavaScript"> function fun(){ var index = document.getElementById("fruit").selectedIndex; var len = document.getElementById("fruit").length; //alert(index); var show = document.getElementById("iner"); show.innerHTML="被选中的索引:"+index+"<br/>下拉处的索引:"+len; } </script> </head> <body> <form action="" Method="post"> <select id="fruit" onchange="fun()"> <option value="apple">苹果</option> <option value="orange">橘子</option> <option value="bananer">香蕉</option> <option value="pineapple">菠萝</option> <option value="peach">挑</option> </select> <div id="iner"></div> </form> </body> </html>
效果;
add()方法:在select中添加一个option标签
例子:使用onchange判断省份,再创建城市
关键代码;
<form action="" Method="post"> <select id="SelPro" onchange="fun()"> <option>--选择省份--</option> <option value="湖北省">湖北省</option> <option value="湖南省">湖南省</option> </select> <select id="SelCity"> <option>--选择城市--</option> </select> </form>
js的add方法添加城市
<script type="text/JavaScript"> function fun(){ var SelPro = document.getElementById("SelPro").value; //获取省份的值 var city = document.getElementById("SelCity"); city.options.length=0;//清除SelCity的选中记录 switch(SelPro){ case "湖北省": city.add(new Option("武汉","武汉"),null); city.add(new Option("荆州","荆州"),null); city.add(new Option("十堰","十堰"),null); break; case "湖北省": city.add(new option("长沙","长沙"),null); city.add(new option("吉首","吉首"),null); city.add(new option("湘潭","湘潭"),null); break; } } </script>
运行效果;
三: 数组; js数组基础;
四: 数组实现省级级联效果
a,使用for循环遍历数组
var array = new Array(); //JavaScript的遍历方式与Oracle的遍历方式相似 for(var i in array){ //输出数组 alert(i); }
b,省市级联效果的思路
1),在html中创建两个下拉框,选中省的时候会对应市的下拉框,使用onchange事件 2)创建数组表示省份和城市 cityList 3),在fun()函数中获得省份的名称,然后在数组中取出相应的城市添加到下拉框中,并且将options.length=0; 4),页面加载时要将省份名称和城市名称添加到下拉框中
代码实现;
<html> <head> <meta http-equiv="Content-type" content="text/html; charset=gbk"/> <script type="text/JavaScript"> var cityList= new Array();//使用数组来保存省份和城市 cityList['湖南省'] = ['长沙','湘潭','吉首']; cityList['湖北省'] = ['武汉','荆州','十堰']; function fun(){ var province = document.getElementById("SelPro").value; //获取省份的值 var city = document.getElementById("SelCity"); city.options.length=0;//清除SelCity的选中记录 // for(var str in cityList){ //alert(str); //} //获得城市 for(var i in cityList){ if( i == province){ for(var j in cityList[i]){ city.add(new Option(cityList[i][j]),null); } } } } //页面加载时获得省份 function allcity(){ var province = document.getElementById("SelPro"); for(var i in cityList){ province.add(new Option(i),null); } } window.onload=allcity; </script> </head> <body> <form action="" Method="post"> <select id="SelPro" onchange="fun()"> <option>选择省份--</option> </select> <select id="SelCity" style="width:100px"> <option>--选择城市--</option> </select> </form> </body> </html>
运行效果;