符合中小企业对网站设计、功能常规化式的企业展示型网站建设
本套餐主要针对企业品牌型网站、中高端设计、前端互动体验...
商城网站建设因基本功能的需求不同费用上面也有很大的差别...
手机微信网站开发、微信官网、微信商城网站...
本文实例讲述了JavaScript实现计算多边形质心的方法。分享给大家供大家参考,具体如下:
目前成都创新互联公司已为1000+的企业提供了网站建设、域名、雅安服务器托管、网站运营、企业网站设计、康保网站维护等服务,公司将坚持客户导向、应用为本的策略,正道将秉承"和谐、参与、激情"的文化,与客户和合作伙伴齐心协力一起成长,共同发展。
最近要基于百度地图显示多边形的标注,所以就研究了下计算Polygon的质心,代码如下:
function
Area(p0,p1,p2)
{
var
area
=
0.0
;
area
=
p0.lng
*
p1.lat
+
p1.lng
*
p2.lat
+
p2.lng
*
p0.lat
-
p1.lng
*
p0.lat
-
p2.lng
*
p1.lat
-
p0.lng
*
p2.lat;
return
area
/
2
;
}
//line
249
计算polygon的质心
function
getPolygonAreaCenter(points)
{
var
sum_x
=
0;
var
sum_y
=
0;
var
sum_area
=
0;
var
p1
=
points[1];
debugger;
for
(var
i
=
2;
i
points.length;
i++)
{
p2=points[i];
area
=
Area(points[0],p1,p2)
;
sum_area
+=
area
;
sum_x
+=
(points[0].lng
+
p1.lng
+
p2.lng)
*
area;
sum_y
+=
(points[0].lat
+
p1.lat
+
p2.lat)
*
area;
p1
=
p2
;
}
var
xx
=
sum_x
/
sum_area
/
3;
var
yy
=
sum_y
/
sum_area
/
3;
return
new
BMap.Point(xx,
yy);
}
标注文字的效果如下:
更多关于JavaScript相关内容感兴趣的读者可查看本站专题:《JavaScript数学运算用法总结》、《JavaScript数据结构与算法技巧总结》、《JavaScript数组操作技巧总结》、《JavaScript事件相关操作与技巧大全》、《JavaScript操作DOM技巧总结》及《JavaScript字符与字符串操作技巧总结》
希望本文所述对大家JavaScript程序设计有所帮助。
您可能感兴趣的文章:js浮点数精确计算(加、减、乘、除)javascript
计算两个整数的百分比值js中精确计算加法和减法示例根据经纬度计算地球上两点之间的距离js实现代码js计算精度问题小结html+js实现简单的计算器代码(加减乘除)如何根据百度地图计算出两地之间的驾驶距离(两种语言js和C#)jsvascript图像处理—(计算机视觉应用)图像金字塔Javascript计算两个marker之间的距离(Google
Map
V3)javascript图像处理—边缘梯度计算函数
我从来不会去记那些东西,一种语言里面都会有很多的属性和方法,去死记不太现实,第一你要准备一个开发手册,自己比较熟悉的那种,第二记住我们经常使用的方法和属性,不必记得全面,目前的开发软件都会有提示功能(记住前几个字母就可以了)。
比如我是.net开发程序员,.net中的属性方法可以说是最多的了,但是有VS开发工具一切都简单了。
不过我这种方法面试时是个短板(笔试---好多写不出来哦)。
不用说自己菜不菜的,能有这个学习的精神已经很值得鼓励了
呵呵,下面,我来给你介绍几个网站常见的菜单
第一个:仿网易的滑动门导航菜单
html xmlns=""
head
meta http-equiv="Content-Type" content="text/html; charset=gb2312" /
title仿网易的滑动门技术,用DIV+CSS技术实现/title
style type="text/css"
!--
#header {
background-color: #F8F4EF;
height: 200px;
width: 400px;
margin: 0px;
padding: 0px;
border: 1px solid #ECE1D5;
font-family: "宋体";
font-size: 12px;
}
#menu {
margin: 0px;
padding: 0px;
list-style-type: none;
}
#menu li {
display: block;
width: 100px;
text-align: center;
float: left;
margin: 0px;
padding-top: 0.2em;
padding-right: 0px;
padding-bottom: 0.2em;
padding-left: 0px;
cursor: hand;
}
.sec1 { background-color: #FFFFCC;}
.sec2 { background-color: #00CCFF;}
.block { display: block;}
.unblock { display: none;}
--
/style
/head
body
script language=javascript
function secBoard(n)
{
for(i=0;imenu.childNodes.length;i++)
menu.childNodes[i].className="sec1";
menu.childNodes[n].className="sec2";
for(i=0;imain.childNodes.length;i++)
main.childNodes[i].style.display="none";
main.childNodes[n].style.display="block";
}
/script
div id="header"
ul id="menu"
li onMouseOver="secBoard(0)" class="sec2"最新新闻/li
li onMouseOver="secBoard(1)" class="sec1"最新文章/li
li onMouseOver="secBoard(2)" class="sec1"最新日志/li
li onMouseOver="secBoard(3)" class="sec1"论坛新帖/li
/ul
!--内容显示区域--
ul id="main"
li class="block"第一个内容/li
li class="unblock"第二个内容/li
li class="unblock"第三个内容/li
li class="unblock"第四个内容/li
/ul
!--内容显示区域--
/div
/body
/html
这里基本上是使用Css与Div的结合,在整个布局中已层为单位,实行滑动菜单的是一个javascript脚本函数,调用就可以了,看不懂不要紧,日渐积累才是重要
第二个:经典实用的触发型导航(这是鼠标单击事件控制)
html
head
meta http-equiv="Content-Type" content="text/html; charset=gb2312"
title网页特效代码|JsCode.CN|---经典实用的触发型导航菜单/title
/head
body
STYLE type=text/css.sec1 {
BORDER-RIGHT: gray 1px solid; BORDER-TOP:
#ffffff 1px solid; BORDER-LEFT: #ffffff 1px
solid; CURSOR: hand; COLOR: #000000; BORDER-
BOTTOM: #ffffff 1px solid; BACKGROUND-COLOR:
#eeeeee
}
.sec2 {
BORDER-RIGHT: gray 1px solid; BORDER-TOP:
#ffffff 1px solid; FONT-WEIGHT: bold; BORDER-
LEFT: #ffffff 1px solid; CURSOR: hand; COLOR:
#000000; BACKGROUND-COLOR: #d4d0c8
}
.main_tab {
BORDER-RIGHT: gray 1px solid; BORDER-
LEFT: #ffffff 1px solid; COLOR: #000000; BORDER-
BOTTOM: gray 1px solid; BACKGROUND-COLOR: #d4d0c8
}
/STYLE
!--JavaScript部分--
SCRIPT language=javascript
function secBoard(n)
{
for(i=0;isecTable.cells.length;i++)
secTable.cells
[i].className="sec1";
secTable.cells[n].className="sec2";
for(i=0;imainTable.tBodies.length;i++)
mainTable.tBodies
[i].style.display="none";
mainTable.tBodies
[n].style.display="block";
}
/SCRIPT
!--HTML部分--
TABLE id=secTable cellSpacing=0 cellPadding=0 width=549 border=0
TBODY
TR align=middle height=20
TD class=sec2 onclick=secBoard(0) width="10%"关于TBODY标记/TD
TD class=sec1 onclick=secBoard(1) width="10%"关于cells集合/TD
TD class=sec1 onclick=secBoard(2) width="10%"关于tBodies集合/TD
TD class=sec1 onclick=secBoard(3) width="10%"关于display属性/TD/TR/TBODY/TABLE
TABLE class=main_tab id=mainTable height=240 cellSpacing=0 cellPadding=0 width=549 border=0!--关于TBODY标记--
TBODY style="DISPLAY: block"
TR
TD vAlign=top align=middleBRBR
TABLE cellSpacing=0 cellPadding=0 width=490 border=0
TBODY
TR
TD指定行做为表体。
BR注释:TBODY要素是块要素,并且需要结束标
签。BR 即使如果表格没有显式定义TBODY
要素,该要素也提供给所有表。BRBR
参考:《动态HTML参考和开发应用大全》(人民邮电出
版社
Microsoft Corporation著
北京华中兴业科技发展有限公司
译)
BRBR/TD/TR/TB
ODY/TABLE/TD/TR/T
BODY!--关于cells集合--
TBODY style="DISPLAY:
none"
TR
TD vAlign=top
align=middleBRBR
TABLE cellSpacing=0
cellPadding=0 width=490 border=0
TBODY
TR
TD检索表行或者整个
表中所有单元格的集合。BR应用于TR、TABLE。
BRBR参考:《动态HTML参考和开发应
用大全》(人民邮电出版社
Microsoft Corporation著
北京华中兴业科技发展有限公司
译)
BRBR/TD/TR/TB
ODY/TABLE/TD/TR/T
BODY!--关于tBodies集合--
TBODY style="DISPLAY:
none"
TR
TD vAlign=top
align=middleBRBR
TABLE cellSpacing=0
cellPadding=0 width=490 border=0
TBODY
TR
TD检索表中所有TBODY
对象的集合。对象在该集合中按照HTML源顺序排列。
BR应用于TABLE。BRBR参考:
《动态HTML参考和开发应用大全》(人民邮电出版社
Microsoft Corporation著
北京华中兴业科技发展有限公司
译)
BRBR/TD/TR/TB
ODY/TABLE/TD/TR/T
BODY!--关于display属性--
TBODY style="DISPLAY:
none"
TR
TD vAlign=top
align=middleBRBR
TABLE cellSpacing=0
cellPadding=0 width=490 border=0
TBODY
TR
TD设置或者检索对象
是否被提供。BR可能的值为block、none、
inline、list-item、table-header-group、table-
footer-group。BR该特性可读写,块要素默认
值为block,内联要素默认值为inline;层叠样式表
(CSS)属性不可继承。BRBR参考:《
动态HTML参考和开发应用大全》(人民邮电出版社
Microsoft Corporation著
北京华中兴业科技发展有限公司译)
BRBRA
href="" target=_blank点击此处
/A可参阅微软A href="" target=_blankMSDN在线/A上的解释。
/TD/TR/TBODY/TABLE
;/TD/TR/TBODY/TABLEg
t;/body
/html
这里跟上面不同的区别在与这是鼠标移动和滑动的事件区别!
第三个:仿拍拍的切换效果菜单(里面的图片是我放上去的,所以会看不到图片的,呵呵 继续)
!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" ""
html xmlns="" lang="zh-CN"
head
meta http-equiv="Content-Language" content="zh-cn" /
meta http-equiv="Content-Type" content="text/html; charset=gb2312" /
meta name="robots" content="all" /
title网页特效|网页特效代码(JsHtml.cn)---仿拍拍paipai.com首页产品图片随机轮显切换效果/titlestyle
body {font-size:12px}
img {border:0px}
#sale{right:206px;top:0;width:260px;background:#fff}
#saleTitle{text-align:right;padding-top:5px;padding-right:5px;width:255px;height:20px;background:url("images/saleTitle.gif") no-repeat}
#saleList{margin-top:5px}
#saleList .saleTwo{height:108px;background:url("images/salelineH.gif") bottom repeat-x;}
#saleList a{display:block;height:108px;width:86px;text-align:center;float:left;overflow:hidden}
#saleList a.saleItem{background:url("images/salelineV.gif") right repeat-y;}
#saleList a img{margin:5px 0}
#saleList a:hover{background-color:#EBFFC5}
/style
script type="text/javascript"
rnd.today=new Date();
rnd.seed=rnd.today.getTime();
function rnd(){
rnd.seed = (rnd.seed*9301+49297) % 233280;
return rnd.seed/(233280.0);
}
function rand(number){
return Math.ceil(rnd()*number)-1;
}
function nextSale(order){
if(order=="up") saleNum--;
else saleNum++;
if(saleNum2) saleNum=0
else if(saleNum0) saleNum=2;
//alert(saleNum);
for(i=0;i3;i++)
document.getElementById("saleList"+i).style.display="none";
document.getElementById("saleList"+saleNum).style.display="";
}
/script
/head
body
div id="sale" class="absolute overflow"
div id="saleTitle" class="absolute"
a href="javascript:nextSale('up')" title="点击到上一屏"
img src="images/saleFore.gif" hspace="4" onmouseover="this.src='images/saleForeOver.gif'" onmouseout="this.src='images/saleFore.gif'" //aa href="javascript:nextSale('down')" title="点击到下一屏"img src="images/saleNext.gif" onmouseover="this.src='images/saleNextOver.gif'" onmouseout="this.src='images/saleNext.gif'" //a/div
div class="overflow" style="height:330px" id="saleList"
script type="text/javascript"var saleNum=rand(3);/script
div id="saleList0" style="display:none"
div class="saleTwo"
a class="saleItem" href="" target="_blank"
div
img alt="圣诞浪漫饰品超级大促" src="/jsimages/UploadFiles_3321/200804/20080423085515804.jpg" width="65" height="65" //div
div
圣诞浪漫饰品br /
超级大促/div
/a
a class="saleItem" href="" target="_blank"
div
img alt="摄像头集结号给你新的感觉" src="/jsimages/UploadFiles_3321/200804/20080423085516472.jpg" width="65" height="65" //div
div
摄像头集结号br /
给你新的感觉/div
/aa href="" target="_blank"
div
img alt="好感度提升韩版娃娃装" src="/jsimages/UploadFiles_3321/200804/20080423085516162.jpg" width="65" height="65" //div
div
好感度提升br /
韩版娃娃装/div
/a/div
div class="saleTwo"
a class="saleItem" href="" target="_blank"
div
img alt="复古牛仔外套特惠119元起" src="/jsimages/UploadFiles_3321/200804/20080423085516293.jpg" width="65" height="65" //div
div
复古牛仔外套br /
特惠119元起/div
/a
a class="saleItem" href="" target="_blank"
div
img alt="圣诞拍拍特供运动服3折" src="/jsimages/UploadFiles_3321/200804/20080423085516802.jpg" width="65" height="65" //div
div
圣诞拍拍特供br /
运动服3折/div
/aa href="" target="_blank"
div
img alt="摄像头集结号给你新的感觉" src="/jsimages/UploadFiles_3321/200804/20080423085516472.jpg" width="65" height="65" //div
div
摄像头集结号br /
给你新的感觉/div
/a/div
div
a class="saleItem" href="" target="_blank"
div
img alt="圣诞拍拍特供电脑周边4折" src="/jsimages/UploadFiles_3321/200804/20080423085516530.jpg" width="65" height="65" //div
div
圣诞拍拍特供br /
电脑周边4折/div
/a
a class="saleItem" href="" target="_blank"
div
img alt="party扮靓甜美腮红" src="/jsimages/UploadFiles_3321/200804/20080423085516658.jpg" width="65" width="65" height="65" //div
div
party扮靓br /
甜美腮红/div
/aa href="" target="_blank"
div
img alt="好感度提升韩版娃娃装" src="/jsimages/UploadFiles_3321/200804/20080423085516162.jpg" width="65" height="65" //div
div
好感度提升br /
韩版娃娃装/div
/a/div
/div
div id="saleList1" style="display:none"
div class="saleTwo"
a class="saleItem" href="" target="_blank"
div
img alt="新奇好玩便宜尽在网游频道" src="/jsimages/UploadFiles_3321/200804/20080423085516612.jpg" width="65" height="65" //div
div
新奇好玩便宜br /
尽在网游频道/div
/a
a class="saleItem" href="" target="_blank"
div
img alt="展现高贵气质骑士系马靴" src="/jsimages/UploadFiles_3321/200804/20080423085516202.jpg" width="65" height="65" //div
div
展现高贵气质br /
骑士系马靴/div
/aa href="" target="_blank"
div
img alt="摄像头集结号给你新的感觉" src="/jsimages/UploadFiles_3321/200804/20080423085516472.jpg" width="65" height="65" //div
div
摄像头集结号br /
给你新的感觉/div
/a/div
div class="saleTwo"
a class="saleItem" href="" target="_blank"
div
img alt="永不过时条纹毛衣" src="/jsimages/UploadFiles_3321/200804/20080423085516984.jpg" width="65" height="65" //div
div
永不过时br /
条纹毛衣/div
/a
a class="saleItem" href="" target="_blank"
div
img alt="圣诞拍拍特供运动鞋2折" src="/jsimages/UploadFiles_3321/200804/20080423085516651.jpg" width="65" height="65" //div
div
圣诞拍拍特供br /
运动鞋2折/div
/aa href="" target="_blank"
div
img alt="好感度提升韩版娃娃装" src="/jsimages/UploadFiles_3321/200804/20080423085516162.jpg" width="65" height="65" //div
div
好感度提升br /
韩版娃娃装/div
/a/div
div
a class="saleItem" href="" target="_blank"
div
img alt="精简唯美索爱K630" src="/jsimages/UploadFiles_3321/200804/20080423085516302.jpg" width="65" height="65" //div
div
精简唯美br /
索爱K630/div
/a
a class="saleItem" href="" target="_blank"
div
img alt="原装瑞士军刀精选" src="/jsimages/UploadFiles_3321/200804/20080423085516549.jpg" width="65" width="65" height="65" //div
div
原装瑞士军刀br /
精选/div
/aa href="" target="_blank"
div
img alt="超薄机身索爱W880" src="/jsimages/UploadFiles_3321/200804/20080423085516711.jpg" width="65" height="65" //div
div
超薄机身br /
索爱W880/div
/a/div
/div
div id="saleList2" style="display:none"
div class="saleTwo"
a class="saleItem" href="" target="_blank"
div
img alt="各就各味秋冬饮食计划" src="/jsimages/UploadFiles_3321/200804/20080423085516704.jpgtype=3" width="65" height="65" //div
div
各就各味br /
秋冬饮食计划/div
/aa href="" target="_blank"
div
img alt="好感度提升韩版娃娃装" src="/jsimages/UploadFiles_3321/200804/20080423085516162.jpg" width="65" height="65" //div
div
好感度提升br /
韩版娃娃装/div
/a/div
div class="saleTwo"
a class="saleItem" href="" target="_blank"
div
img alt="圣诞拍拍特供随身视听5折" src="/jsimages/UploadFiles_3321/200804/20080423085516375.jpg" width="65" height="65" //div
div
圣诞拍拍特供br /
随身视听5折/div
/aa href="" target="_blank"
div
img alt="超薄机身索爱W880" src="/jsimages/UploadFiles_3321/200804/20080423085516711.jpg" width="65" height="65" //div
div
超薄机身br /
索爱W880/div
/a/div
div
a class="saleItem" href="" target="_blank"
div
img alt="我爱我家家居大抢购" src="/jsimages/UploadFiles_3321/200804/20080423085516954.jpg" width="65" height="65" //div
div
我爱我家br /
家居大抢购/div
/aa href="" target="_blank"
div
img alt="超值彩妆套装变身派对女王" src="/jsimages/UploadFiles_3321/200804/20080423085516919.jpg" width="65" width="65" height="65" //div
div
超值彩妆套装br /
变身派对女王/div
/a/div
/div
/div
/div
script type="text/javascript"document.getElementById("saleList"+saleNum).style.display="";/script
p /p
p更多网页特效代码尽在 a href=""网页特效代码/a/p
/body
/html
这个仿拍拍基本上就是2层放图片,但用起来的效果还是可以的,如果不喜欢我还有下面呢,慢慢学,总会看懂的 (最重要的还是Css哦)
这个主要就是让层实现隐藏 我觉得这个在层使用方面还是好的
从总体上看,在实现层与层之间的交互,在其代码 我觉得你有必要去认真看下 !
以上是我介绍额度菜单,虽然不是很强大,但是却很使用,而且在J2EE中
菜单基本上是一个假象,都是用层与Css之间的特效做出来的!
学会了层的具体应用,我相信你也可以有自己特色的菜单的
那我祝你好运咯!!加油!!
JavaScript验证表单大全
script
/*
用途:校验ip地址的格式
输入:strIP:ip地址
返回:如果通过验证返回true,否则返回false;
*/
function isIP(strIP) {
if (isNull(strIP)) return false;
var re=/^(\d+)\.(\d+)\.(\d+)\.(\d+)$/g //匹配IP地址的正则表达式
if(re.test(strIP))
{
if( RegExp.$1 256 RegExp.$2256 RegExp.$3256 RegExp.$4256) return true;
}
return false;
}
/*
用途:检查输入字符串是否为空或者全部都是空格
输入:str
返回:
如果全是空返回true,否则返回false
*/
function isNull( str ){
if ( str == "" ) return true;
var regu = "^[ ]+$";
var re = new RegExp(regu);
return re.test(str);
}
/*
用途:检查输入对象的值是否符合整数格式
输入:str 输入的字符串
返回:如果通过验证返回true,否则返回false
*/
function isInteger( str ){
var regu = /^[-]{0,1}[0-9]{1,}$/;
return regu.test(str);
}
/*
用途:检查输入手机号码是否正确
输入:
s:字符串
返回:
如果通过验证返回true,否则返回false
*/
function checkMobile( s ){
var regu =/^[1][3][0-9]{9}$/;
var re = new RegExp(regu);
if (re.test(s)) {
return true;
}else{
return false;
}
}
/*
用途:检查输入字符串是否符合正整数格式
输入:
s:字符串
返回:
如果通过验证返回true,否则返回false
*/
function isNumber( s ){
var regu = "^[0-9]+$";
var re = new RegExp(regu);
if (s.search(re) != -1) {
return true;
} else {
return false;
}
}
/*
用途:检查输入字符串是否是带小数的数字格式,可以是负数
输入:
s:字符串
返回:
如果通过验证返回true,否则返回false
*/
function isDecimal( str ){
if(isInteger(str)) return true;
var re = /^[-]{0,1}(\d+)[\.]+(\d+)$/;
if (re.test(str)) {
if(RegExp.$1==0RegExp.$2==0) return false;
return true;
} else {
return false;
}
}
/*
用途:检查输入对象的值是否符合端口号格式
输入:str 输入的字符串
返回:如果通过验证返回true,否则返回false
*/
function isPort( str ){
return (isNumber(str) str65536);
}
/*
用途:检查输入对象的值是否符合E-Mail格式
输入:str 输入的字符串
返回:如果通过验证返回true,否则返回false
*/
function isEmail( str ){
var myReg = /^[-_A-Za-z0-9]+@([_A-Za-z0-9]+\.)+[A-Za-z0-9]{2,3}$/;
if(myReg.test(str)) return true;
return false;
}
/*
用途:检查输入字符串是否符合金额格式
格式定义为带小数的正数,小数点后最多三位
输入:
s:字符串
返回:
如果通过验证返回true,否则返回false
*/
function isMoney( s ){
var regu = "^[0-9]+[\.][0-9]{0,3}$";
var re = new RegExp(regu);
if (re.test(s)) {
return true;
} else {
return false;
}
}
/*
用途:检查输入字符串是否只由英文字母和数字和下划线组成
输入:
s:字符串
返回:
如果通过验证返回true,否则返回false
*/
function isNumberOr_Letter( s ){//判断是否是数字或字母
var regu = "^[0-9a-zA-Z\_]+$";
var re = new RegExp(regu);
if (re.test(s)) {
return true;
}else{
return false;
}
}
/*
用途:检查输入字符串是否只由英文字母和数字组成
输入:
s:字符串
返回:
如果通过验证返回true,否则返回false
*/
function isNumberOrLetter( s ){//判断是否是数字或字母
var regu = "^[0-9a-zA-Z]+$";
var re = new RegExp(regu);
if (re.test(s)) {
return true;
}else{
return false;
}
}
/*
用途:检查输入字符串是否只由汉字、字母、数字组成
输入:
value:字符串
返回:
如果通过验证返回true,否则返回false
*/
function isChinaOrNumbOrLett( s ){//判断是否是汉字、字母、数字组成
var regu = "^[0-9a-zA-Z\u4e00-\u9fa5]+$";
var re = new RegExp(regu);
if (re.test(s)) {
return true;
}else{
return false;
}
}
/*
用途:判断是否是日期
输入:date:日期;fmt:日期格式
返回:如果通过验证返回true,否则返回false
*/
function isDate( date, fmt ) {
if (fmt==null) fmt="yyyyMMdd";
var yIndex = fmt.indexOf("yyyy");
if(yIndex==-1) return false;
var year = date.substring(yIndex,yIndex+4);
var mIndex = fmt.indexOf("MM");
if(mIndex==-1) return false;
var month = date.substring(mIndex,mIndex+2);
var dIndex = fmt.indexOf("dd");
if(dIndex==-1) return false;
var day = date.substring(dIndex,dIndex+2);
if(!isNumber(year)||year"2100" || year "1900") return false;
if(!isNumber(month)||month"12" || month "01") return false;
if(daygetMaxDay(year,month) || day "01") return false;
return true;
}
function getMaxDay(year,month) {
if(month==4||month==6||month==9||month==11)
return "30";
if(month==2)
if(year%4==0year%100!=0 || year%400==0)
return "29";
else
return "28";
return "31";
}
/*
用途:字符1是否以字符串2结束
输入:str1:字符串;str2:被包含的字符串
返回:如果通过验证返回true,否则返回false
*/
function isLastMatch(str1,str2)
{
var index = str1.lastIndexOf(str2);
if(str1.length==index+str2.length) return true;
return false;
}
/*
用途:字符1是否以字符串2开始
输入:str1:字符串;str2:被包含的字符串
返回:如果通过验证返回true,否则返回false
*/
function isFirstMatch(str1,str2)
{
var index = str1.indexOf(str2);
if(index==0) return true;
return false;
}
/*
用途:字符1是包含字符串2
输入:str1:字符串;str2:被包含的字符串
返回:如果通过验证返回true,否则返回false
*/
function isMatch(str1,str2)
{
var index = str1.indexOf(str2);
if(index==-1) return false;
return true;
}
/*
用途:检查输入的起止日期是否正确,规则为两个日期的格式正确,
且结束如期=起始日期
输入:
startDate:起始日期,字符串
endDate:结束如期,字符串
返回:
如果通过验证返回true,否则返回false
*/
function checkTwoDate( startDate,endDate ) {
if( !isDate(startDate) ) {
alert("起始日期不正确!");
return false;
} else if( !isDate(endDate) ) {
alert("终止日期不正确!");
return false;
} else if( startDate endDate ) {
alert("起始日期不能大于终止日期!");
return false;
}
return true;
}
/*
用途:检查输入的Email信箱格式是否正确
输入:
strEmail:字符串
返回:
如果通过验证返回true,否则返回false
*/
function checkEmail(strEmail) {
//var emailReg = /^[_a-z0-9]+@([_a-z0-9]+\.)+[a-z0-9]{2,3}$/;
var emailReg = /^[\w-]+(\.[\w-]+)*@[\w-]+(\.[\w-]+)+$/;
if( emailReg.test(strEmail) ){
return true;
}else{
alert("您输入的Email地址格式不正确!");
return false;
}
}
/*
用途:检查输入的电话号码格式是否正确
输入:
strPhone:字符串
返回:
如果通过验证返回true,否则返回false
*/
function checkPhone( strPhone ) {
var phoneRegWithArea = /^[0][1-9]{2,3}-[0-9]{5,10}$/;
var phoneRegNoArea = /^[1-9]{1}[0-9]{5,8}$/;
var prompt = "您输入的电话号码不正确!"
if( strPhone.length 9 ) {
if( phoneRegWithArea.test(strPhone) ){
return true;
}else{
alert( prompt );
return false;
}
}else{
if( phoneRegNoArea.test( strPhone ) ){
return true;
}else{
alert( prompt );
return false;
}
}
}
/script
form name=a onsubmit="return checkPhone(document.a.b.value);"
INPUT TYPE="text" NAME="b"
input type="submit" name="Submit" value="check"
/form