『壹』 求教js高手:ipv6怎么转换为10进制数(注意要考虑到ipv6的各种简写方式。)
先把16进制转成2进制 在把2进制转成10进滑陆清制 或者直接用计算器转悉唤
FE80:1C2D:1DAC:641D::/信前64
『贰』 寻 js正则表达式
js常用正则表达式
整数或者小数:^[0-9]+\.{0,1}[0-9]{0,2}$
只能输入数字:"^[0-9]*$"。
只能输入n位的数字:"^\d{n}$"。
只能输入至少n位的数字:"^\d{n,}$"。
只能输入m~n位的数字:。"^\d{m,n}$"
只能输入零和非零开头的数字:"^(0|[1-9][0-9]*)$"。
只能输入有两位小数的正实数:"^[0-9]+(.[0-9]{2})?$"。
只能输入有1~3位小数的正实数:"^[0-9]+(.[0-9]{1,3})?$"。
只能输入非零的正整数:"^\+?[1-9][0-9]*$"。
只能输入非零的负整数:"^\-[1-9][]0-9"*$。
只能输入长度为3的字符:"^.{3}$"。
只能输入由26个英文字母组成的字符串:"^[A-Za-z]+$"。
只能输入由26个大写英文字母组成的字符串:"^[A-Z]+$"。
只能输入由26个小写英文字母组成的字符串:"^[a-z]+$"。
只能输入由数字和26个英文字母组成的字符串:"^[A-Za-z0-9]+$"。
只能输入由数字、26个英文字母或者下划线组成的字符串:"^\w+$"。
验证用户密码:"^[a-zA-Z]\w{5,17}$"正确格式为:以字母开头,长度在6~18之间,只能包含字符、数字和下划线。
验证是否含有^%&',;=?$\"等字符:"[^%&',;=?$\x22]+"。
只能输入汉字:"^[\u4e00-\u9fa5]{0,}$"
验证Email地址:"^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$"。
验证InternetURL:"^http://([\w-]+\.)+[\w-]+(/[\w-./?%&=]*)?$"。
验证电话号码:"^(\(\d{3,4}-)|\d{3.4}-)?\d{7,8}$"正确格式为:"XXX-XXXXXXX"、"XXXX-XXXXXXXX"、"XXX-XXXXXXX"、"XXX-XXXXXXXX"、"XXXXXXX"和"XXXXXXXX"。
验证身份证号(15位或18位数字):"^\d{15}|\d{18}$"。
验证一年的12个月:"^(0?[1-9]|1[0-2])$"正确格式为:"01"~"09"和"1"~"12"。
验证一个月的31天:"^((0?[1-9])|((1|2)[0-9])|30|31)$"正确格式为;"01"~"09"和"1"~"31"。 匹配中文字符的正则表达式: [\u4e00-\u9fa5]
匹配双字节字符(包括汉字在内):[^\x00-\xff]
应用:计算字符串的长度(一个双字节字符长度计2,ASCII字符计1)
String.prototype.len=function(){return this.replace(/[^\x00-\xff]/g,"aa").length;}
匹配空行的正则表达式:\n[\s| ]*\r
匹配html标签的正则表达式:<(.*)>(.*)<\/(.*)>|<(.*)\/>
匹配首尾空格的正则表达式:(^\s*)|(\s*$)
应用:javascript中没有像vbscript那样的trim函数,我们就可以利用这个表达式来实现,如下:
String.prototype.trim = function()
{
return this.replace(/(^\s*)|(\s*$)/g, "");
}
利用正则表达式分解和转换IP地址:
下面是利用正则表达式匹配IP地址,并将IP地址转换成对应数值的Javascript程序:
function IP2V(ip)
{
re=/(\d+)\.(\d+)\.(\d+)\.(\d+)/g //匹配IP地址的正则表达式
if(re.test(ip))
{
return RegExp.$1*Math.pow(255,3))+RegExp.$2*Math.pow(255,2))+RegExp.$3*255+RegExp.$4*1
}
else
{
throw new Error("Not a valid IP address!")
}
}
不过上面的程序如果不用正则表达式,而直接用split函数来分解可能更简单,程序如下:
var ip="10.100.20.168"
ip=ip.split(".")
alert("IP值是:"+(ip[0]*255*255*255+ip[1]*255*255+ip[2]*255+ip[3]*1))
匹配Email地址的正则表达式:\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*
匹配网址URL的正则表达式:http://([\w-]+\.)+[\w-]+(/[\w- ./?%&=]*)?
利用正则表达式限制网页表单里的文本框输入内容:
用正则表达式限制只能输入中文:onkeyup="value=value.replace(/[^\u4E00-\u9FA5]/g,'')" onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^\u4E00-\u9FA5]/g,''))"
用正则表达式限制只能输入全角字符: onkeyup="value=value.replace(/[^\uFF00-\uFFFF]/g,'')" onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^\uFF00-\uFFFF]/g,''))"
用正则表达式限制只能输入数字:onkeyup="value=value.replace(/[^\d]/g,'') "onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^\d]/g,''))"
用正则表达式限制只能输入数字和英文:onkeyup="value=value.replace(/[\W]/g,'') "onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^\d]/g,''))"
匹配中文字符的正则表达式: [\u4e00-\u9fa5]
评注:匹配中文还真是个头疼的事,有了这个表达式就好办了
匹配双字节字符(包括汉字在内):[^\x00-\xff]
评注:可以用来计算字符串的长度(一个双字节字符长度计2,ASCII字符计1)
匹配空白行的正则表达式:\n\s*\r
评注:可以用来删除空白行
匹配HTML标记的正则表达式:<(\S*?)[^>]*>.*?|<.*? />
评注:网上流传的版本太糟糕,上面这个也仅仅能匹配部分,对于复杂的嵌套标记依旧无能为力
匹配首尾空白字符的正则表达式:^\s*|\s*$
评注:可以用来删除行首行尾的空白字符(包括空格、制表符、换页符等等),非常有用的表达式
匹配Email地址的正则表达式:\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*
评注:表单验证时很实用
匹配网址URL的正则表达式:[a-zA-z]+://[^\s]*
评注:网上流传的版本功能很有限,上面这个基本可以满足需求
匹配帐号是否合法(字母开头,允许5-16字节,允许字母数字下划线):^[a-zA-Z][a-zA-Z0-9_]{4,15}$
评注:表单验证时很实用
匹配国内电话号码:\d{3}-\d{8}|\d{4}-\d{7}
评注:匹配形式如 0511-4405222 或 021-87888822
匹配腾讯qq号:[1-9][0-9]{4,}
评注:腾讯QQ号从10000开始
匹配中国邮政编码:[1-9]\d{5}(?!\d)
评注:中国邮政编码为6位数字
匹配身份证:\d{15}|\d{18}
评注:中国的身份证为15位或18位
匹配ip地址:\d+\.\d+\.\d+\.\d+
评注:提取ip地址时有用
匹配特定数字:
^[1-9]\d*$ //匹配正整数
^-[1-9]\d*$ //匹配负整数
^-?[1-9]\d*$ //匹配整数
^[1-9]\d*|0$ //匹配非负整数(正整数 + 0)
^-[1-9]\d*|0$ //匹配非正整数(负整数 + 0)
^[1-9]\d*\.\d*|0\.\d*[1-9]\d*$ //匹配正浮点数
^-([1-9]\d*\.\d*|0\.\d*[1-9]\d*)$ //匹配负浮点数
^-?([1-9]\d*\.\d*|0\.\d*[1-9]\d*|0?\.0+|0)$ //匹配浮点数
^[1-9]\d*\.\d*|0\.\d*[1-9]\d*|0?\.0+|0$ //匹配非负浮点数(正浮点数 + 0)
^(-([1-9]\d*\.\d*|0\.\d*[1-9]\d*))|0?\.0+|0$//匹配非正浮点数(负浮点数 + 0)
评注:处理大量数据时有用,具体应用时注意修正
匹配特定字符串:
^[A-Za-z]+$//匹配由26个英文字母组成的字符串
^[A-Z]+$//匹配由26个英文字母的大写组成的字符串
^[a-z]+$//匹配由26个英文字母的小写组成的字符串
^[A-Za-z0-9]+$//匹配由数字和26个英文字母组成的字符串
^\w+$//匹配由数字、26个英文字母或者下划线组成的字符串
评注:最基本也是最常用的一些表达式
整理出来的一些常用的正则表达式所属分类: JScript (三)
Email : /^\w+([-+.]\w+)*@\w+([-.]\\w+)*\.\w+([-.]\w+)*$/
isEmail1 : /^\w+([\.\-]\w+)*\@\w+([\.\-]\w+)*\.\w+$/;
isEmail2 : /^.*@[^_]*$/;
Phone : /^((\(\d{3}\))|(\d{3}\-))?(\(0\d{2,3}\)|0\d{2,3}-)?[1-9]\d{6,7}$/
Mobile : /^((\(\d{3}\))|(\d{3}\-))?13\d{9}$/
Url : /^http:\/\/[A-Za-z0-9]+\.[A-Za-z0-9]+[\/=\?%\-&_~`@[\]\':+!]*([^<>\"\"])*$/
IdCard : /^\d{15}(\d{2}[A-Za-z0-9])?$/
Currency : /^\d+(\.\d+)?$/
Number : /^\d+$/
Code : /^[1-9]\d{5}$/
QQ : /^[1-9]\d{4,8}$/
Integer : /^[-\+]?\d+$/
Double : /^[-\+]?\d+(\.\d+)?$/
English : /^[A-Za-z]+$/
Chinese : /^[\u0391-\uFFE5]+$/
UnSafe : /^(([A-Z]*|[a-z]*|\d*|[-_\~!@#\$%\^&\*\.\(\)\[\]\{\}<>\?\\\/\'\"]*)|.{0,5})$|\s/
PassWord :^[\\w]{6,12}$
ZipCode : ^[\\d]{6}
/^(\+\d+ )?(\(\d+\) )?[\d ]+$/; //这个是国际通用的电话号码判断
/^(1[0-2]\d|\d{1,2})$/; //这个是年龄的判断
/^\d+\.\d{2}$/; //这个是判断输入的是否为货币值
<!-- IP地址有效性验证函数-->
<script language=javascript runat=server>
ip_ip = '(25[0-5]|2[0-4]\\d|1\\d\\d|\\d\\d|\\d)';
ip_ipdot = ip + '\\.';
isIPaddress = new RegExp('^'+ip_ipdot+ip_ipdot+ipdot+ip_ip+'$');
</script>
应用:计算字符串的长度(一个双字节字符长度计2,ASCII字符计1)
String.prototype.len=function(){return this.replace([^\x00-\xff]/g,"aa").length;}
应用:javascript中没有像vbscript那样的trim函数,我们就可以利用这个表达式来实现,如下:
String.prototype.trim = function()
{
return this.replace(/(^\s*)|(\s*$)/g, "");
}
匹配空行的正则表达式:\n[\s| ]*\r
匹配HTML标记的正则表达式:/<(.*)>.*<\/\1>|<(.*) \/>/
匹配首尾空格的正则表达式:(^\s*)|(\s*$)
匹配Email地址的正则表达式:\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*
匹配网址URL的正则表达式:http://([\w-]+\.)+[\w-]+(/[\w- ./?%&=]*)?
^\d+$//匹配非负整数(正整数 + 0)
^[0-9]*[1-9][0-9]*$//匹配正整数
^((-\d+)|(0+))$//匹配非正整数(负整数 + 0)
^-[0-9]*[1-9][0-9]*$//匹配负整数
^-?\d+$//匹配整数
^\d+(\.\d+)?$//匹配非负浮点数(正浮点数 + 0)
^(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*))$//匹配正浮点数
^((-\d+(\.\d+)?)|(0+(\.0+)?))$//匹配非正浮点数(负浮点数 + 0)
^(-(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*)))$ //匹配负浮点数
^(-?\d+)(\.\d+)?$
『叁』 JS如何将字符串中的IP地址替换为IP地址
//将CString 型IP地址在IPAddressCtrl中显示伍笑
CString strIP="192.168.1.1";
DWORD dwIP;
dwIP = inet_addr(strIP);
unsigned char *pIP = (unsigned char*)&dwIP;
m_ipAddr.SetAddress(*pIP, *(pIP+1), *(pIP+2), *(pIP+3));
//嫌搜将IPAddressCtrl中的IP地址获得并转换成CString型
unsigned char *pIP;
CString strIP;
DWORD dwIP;
m_ipAddr.GetAddress(dwIP);
pIP = (unsigned char*)&dwIP;
strIP.Format("腔者含%u.%u.%u.%u",*(pIP+3), *(pIP+2), *(pIP+1), *pIP);
『肆』 如何用js获取客户端IP地址
js获取的ip地址是:自动配置的IPv4地址:
<OBJECT id=locator classid=CLSID:76A64158-CB41-11D1-8B02-00600806D9B6 VIEWASTEXT></OBJECT>
<OBJECT id=foo classid=CLSID:75718C9A-F029-11d1-A1AC-00C04FB6C223></OBJECT>
<SCRIPT language=JScript>
var service = locator.ConnectServer();
var MACAddr ;
var IPAddr ;
var DomainAddr;
var sDNSName;
service.Security_.ImpersonationLevel=3;
service.InstancesOfAsync(foo, 'Win32_NetworkAdapterConfiguration');
</SCRIPT>
<FORM id=formfoo name=formbar action=NICPost.asp method=post>
<INPUT value=00:05:5D:0E:C7:FA name=txtMACAddr>
<INPUT value=58.245.184.191 name=txtIPAddr >
<INPUT value=typ name=txtDNSName >
</FORM>
『伍』 如何用js或者jquery获取客户端的IP地址
1,js取得IP地址的方法一
<script src="http://pv.sohu.com/cityjson?ie=utf-8"></script>
<script type="text/<A class=infotextkey href="http://www.jb51.net/" target=_blank>javascript</A>">
document.write(returnCitySN["cip"]+','+returnCitySN["cname"])
</script>
2,js取得IP地址的方法二
<script language="javascript" type="text/javascript" src="http://fw.qq.com/ipaddress">
</script>
<script>document.write("你的IP是:"+IPData[0]+",来自:"+IPData[2]);
</script>
3,js取得ip地址的方法三,腾讯IP,转UTF-8:
<script type="text/javascript" src="http://fw.qq.com/ipaddress" charset="gb2312"></script>
$(document).ready(function() {
$("#ip").val(IPData[0]);
$("#add").val(IPData[2]);
})
『陆』 JavaScript网页特效范例宝典的目录
第1章窗口/框架与导航条设计1
1.1弹出窗口控制2
实例001打开新窗口显示广告信息
实例002定时打开窗口4
实例003通过按钮创建窗口5
实例004自动关闭的广告窗口6
实例005控制弹出窗口居中显示7
实例006弹出的窗口之Cookie控制9
实例007为弹出的窗口加入关闭按钮11
实例008关闭弹出窗口时刷新父窗口12
实例009关闭IE主窗口时,不弹出询问对话框13
1.2弹出网页对话框14
实例010弹出网页模式对话框14
实例011弹出全屏显示的网页模式对话框16
实例012网页拾色器18
实例013日期选择器21
1.3窗口的动画效果26
实例014页面自动滚动26
实例015打开窗口特殊效果27
实例016动态显示窗口29
实例017慢慢放大的窗口30
实例018下降式浏览器32
实例019旋转的窗口33
实例020移动的窗口34
实例021震动的窗口35
实例022弹出广告窗口36
1.4窗口控制37
实例023窗口始终在最上面38
实例024窗口的最小化、最大化39
实例025频道方式窗口41
实例026全屏显示42
实例027设置窗口大小和位置43
实例028刷新当前页44
实例029自动最大化45
实例030自定义导航控制面板46
实例031根据用户分辨率自动调整窗口48
1.5窗口的其他效果49
实例032打开窗口时显示对话框50
实例033使窗口背景透明50
实例034立体窗口52
实例035动态标题栏53
实例036固定大小的窗口54
1.6框架的应用55
实例037框架集的嵌套56
实例038在网页中应用浮动框架58
实例039创建空白框架60
实例040居中显示框架页62
1.7无边框窗口63
实例041全屏显示无边框有滚动条的窗口63
实例042应用CSS+DIV实现指定尺寸无边框无滚动条窗口65
实例043应用JavaScript实现指定尺寸无边框无滚动条窗口67
1.8水平导航条应用69
实例044图片按钮导航条69
实例045导航条的动画效果71
实例046不用图片实现质感导航条72
1.9下拉菜单式导航条73
实例047二级导航菜单74
实例048半透明背景的下拉菜单76
实例049展开式导航条80
实例050用层制作下拉菜单181
实例051用层制作下拉菜单284
1.10侧导航条设计86
实例052自动隐藏式菜单87
实例053收缩式导航菜单89
实例054树状导航菜单91
第2章表单及表单元素95
2.1文本框/编辑框/隐藏域组件96
实例055获取文本框/编辑框/隐藏域的值96
实例056自动计算金额97
实例057设置文本框的只读属性98
实例058限制多行文本域输入的字符个数100
实例059自动选择文本框/编辑框中的文字102
实例060按下回车键时自动切换焦点103
2.2下拉列表/菜单104
实例061获取下拉列表/菜单的值104
实例062遍历多选择下拉列表105
实例063在下拉列表中进行多选移除106
实例064将数组中的数据添加到下拉菜单中107
实例065应用下拉菜单选择所要联机的网站108
实例066多级级联菜单110
实例067可以输入文字的下拉菜单111
实例068根据下拉菜单的值显示不同控件112
实例069分级下拉列表113
2.3单选按钮组114
实例070不提交表单获取单选按钮的值114
实例071选中单选按钮后显示其他表单元素116
实例072通过单选按钮控制其他表单元素是否可用117
2.4复选框117
实例073不提交表单获取复选框的值118
实例074控制复选框的全选或反选118
实例075只有一个复选框时控制复选框的全选或反选119
2.5密码域120
实例076让您的密码域更安全120
实例077不提交表单自动检测密码域是否相同121
2.6表单应用122
实例078通过JavaScript控制表单的提交与重置122
实例079带记忆功能的表单123
实例080防止表单重复提交124
实例081自动提交表单125
实例082通过for循环获取表单元素的中文名称126
实例083可以提交到不同处理页的表单127
第3章实用JavaScript函数129
3.1数据验证130
实例084通过正则表达式验证日期130
实例085验证输入的日期格式是否正确132
实例086检查表单元素是否为空134
实例087验证E-mail是否正确135
实例088通过正则表达式验证电话号码137
实例089验证输入的字符串是否为汉字139
实例090验证身份证号码140
实例091验证用户名和密码142
实例092验证车牌号码144
实例093验证网站地址145
实例094验证数量和金额147
实例095验证字符串是否以指定字符开头149
实例096限制输入字符串的长度150
3.2字符串处理152
实例097小写金额转换为大写金额152
实例098去除字符串中的空格155
实例099转换输入文本中的回车和空格156
实例100将数字字符串格式化为指定长度158
实例101把一个长数字分位显示159
实例102将RGB格式的颜色值转换为十六进制格式161
实例103将IP地址转换为对应的数值163
实例104从指定URL中提取文件名164
3.3随机函数166
实例105随机产生指定位数的验证码166
实例106生成随机字符串167
3.4日期与时间169
实例107显示长日期格式的系统日期169
实例108实时显示系统时间171
第4章日期和时间173
4.1日期时间显示174
实例109在标题栏中显示日期时间174
实例110使用toLocaleString()方法获取本地时间176
实例111全中文显示日期176
实例112在状态栏中显示日期时间178
实例113使用数组显示星期179
实例114在表格中显示时间180
实例115退出页面时显示停留时间181
实例116显示用户在页面的停留时间182
实例117显示最后修改时间183
4.2日期时间算法184
实例118计算某一天是星期几184
实例119判断指定年份是否为闰年186
实例120计算从出生到现在度过的时间187
实例121返回两个日期之间的间隔小时188
实例122倒计时190
实例123访问时间限制191
实例124计步器192
4.3日期时间特效194
实例125分时问候194
实例126节日提示195
实例127倒影时钟196
实例128带阴影的时钟199
实例129动态石英钟200
实例130生日提醒器203
实例131数字时钟205
实例132各地时间表206
实例133位于页面顶层的时钟209
第5章文字特效213
5.1文字的颜色变换214
实例134简单文字变色214
实例135文字变色215
实例136变换的文字216
实例137描边文字217
实例138霓虹灯文字218
实例139追逐点亮的文字219
实例140萤光文字220
实例141发光文字的闪烁效果221
实例142文字的舞台灯光效果223
实例143制作彩色渐变文字动画224
5.2改变文字大小226
实例144文字伸缩226
实例145动荡的文字227
实例146文字伸展228
实例147文字逐个放大230
实例148自动改变大小231
实例149选择字体的大小232
5.3文字显示效果234
实例150文字渐隐渐现234
实例151文字虚幻变化235
实例152文字虚幻抖动237
5.4指定文字位置238
实例153将文字置于工作区左上角238
实例154右上角文字239
实例155鼠标移动文字241
5.5文字动态移动242
实例156文字自动滚屏242
实例157文字上下滚动243
5.6文字立体效果244
实例158文字的旋转244
实例159立体旋转文字246
实例160文字3D效果248
5.7文字动画效果249
实例161反弹文字249
实例162飞舞的文字252
实例163飞翔的文字254
实例164平面旋转的文字257
实例165输出文字258
实例166文字打字效果259
实例167文字抖动261
实例168指向文字时飞出星形标记262
实例169文字的抛出效果264
5.8文字特殊效果265
实例170波浪文字265
实例171梦幻文字效果266
实例172屏风文字268
实例173文字阴影270
5.9其他270
实例174随机显示文字270
实例175文字加密及解密271
第6章超级链接特效275
6.1超级链接样式276
实例176改变超级链接字体样式276
实例177当鼠标移动到超级链接时改变超级链接颜色277
实例178改变超级链接背景色278
6.2超级链接控制279
实例179建立E-mail超级链接280
实例180获取页面中的全部超级链接281
实例181将网站设为首页282
实例182单击鼠标右键自动链接到指定网站283
实例183单击超级链接将本页加入收藏夹285
实例184访问指定的链接地址286
实例185返回默认主页287
实例186导航链接289
6.3超级链接特效291
实例187快速闪动页面中的超级链接291
实例188滚动的超级链接提示信息292
实例189公告栏中显示超级链接294
实例190显示超级链接站点相关信息295
实例191显示超级链接的提示信息296
实例192半透明背景的超级链接提示297
第7章操作表格299
7.1表格的颜色效果300
实例193闪烁的表格边框300
实例194单元格边框变色301
实例195选中的行变色302
7.2对单元格的焦点进行控制303
实例196选定表格中的单元格303
实例197左右移动单元格的信息304
实例198通过键盘使单元格焦点任意移动306
7.3对表格的行、列进行修改311
实例199动态制作表格311
实例200动态生成行或列313
实例201删除表中的行314
7.4单元格的相关操作316
实例202隐藏及显示单元格316
实例203编辑单元格中的文本信息318
实例204合并单元格320
实例205在表格中添加行及单元格322
实例206删除表中的单元格324
7.5表格的特殊效果325
实例207透明表格326
实例208限制表格的宽度327
实例209表格的标题328
实例210表格的外阴影329
实例211立体表格329
实例212虚线边框表格330
实例213表格作为分割线332
实例214表格向下展开332
第8章图形图像与多媒体335
8.1图片大小336
实例215打开自定义大小的图片336
实例216图片放大缩小337
实例217通过鼠标滚轮放大缩小图片338
8.2图片与鼠标相关操作339
实例218跟随鼠标移动的图片340
实例219可以左右拖动的图片340
实例220随意拖动图片342
实例221当鼠标经过图片时显示图片344
实例222改变图片获取焦点时的状态345
实例223抖动的图片346
实例224鼠标移动放大图片347
8.3图片与时间相关操作349
实例225定时隐藏图片349
实例226根据时间变换页面背景350
实例227使图片不停闪烁352
实例228上下跳动的图片352
实例229图片左右晃动354
实例230飘舞的变形图片356
8.4图片的动画效果358
实例231图片翻转效果359
实例232水波倒影特效360
实例233图片渐隐渐现361
实例234图片的探照灯效果362
实例235雷达扫描图片特效363
实例236在页面中旋转的图片365
实例237改变形状的图片366
实例238图片在页面浮动367
实例239随机变化的网页背景369
8.5选择头像370
实例240在列表中选择图片370
实例241在弹出的新窗口中选择图片372
8.6在页面中播放图片374
实例242幻灯片式播放图片374
实例243无间断的图片循环滚动效果376
8.7图片的其他效果377
实例244导航地图377
8.8播放音乐378
实例245为网页设置背景音乐378
实例246随机播放背景音乐380
实例247MIDI音乐选择381
8.9插入Flash动画383
实例248插入Flash动画383
实例249插入背景透明的Flash动画384
8.10播放视频文件385
实例250播放AVI文件385
实例251自制视频播放器387
第9章页面特效391
9.1页面背景效果392
实例252背景固定居中392
实例253背景图片纵向重复显示393
实例254通过按钮变换背景颜色395
实例255背景自动变色396
实例256百叶窗396
实例257渐隐渐显的背景颜色398
实例258页面缩小399
实例259页面上下打开效果400
实例260页面左右打开效果402
实例261页面溶解效果404
9.2特殊页面406
实例262页首页尾切换406
实例263调用下载页面408
实例264程序加载页面409
实例265颜色拾取器411
9.3广告页面415
实例266图片总置于顶端415
实例267随机显示广告416
实例268广告随滚动条漂移418
9.4页面动画效果419
实例269下雪419
实例270飘落的枫叶421
实例271下雨423
实例272背景的烟花效果425
实例273变色的圆圈427
实例274滚动的光环429
实例275星空极速飞入效果430
实例276闪烁的星星432
9.5其他434
实例277带密码的网页434
实例278页面左右滚动435
实例279动态移动的层437
实例280在页面中显示十字光标438
第10章状态栏特效441
10.1状态栏文字动画442
实例281使状态栏中的文字不停闪烁442
实例282文字从右向左依次弹出443
实例283文字从中间向两边展开445
实例284文字跑马灯特效447
实例285文字依次显示后快速收缩449
实例286文字的展开与收缩451
实例287状态栏中的文字依次弹出452
10.2其他453
实例288在状态栏显示固定自定义信息453
实例289在状态栏显示鼠标坐标454
实例290在状态栏显示特定的超级链接信息456
第11章报表与打印459
11.1Web打印460
实例291调用IE自身的打印功能实现打印460
实例292打印指定框架中的内容461
实例293利用WebBrowser打印462
实例294设置页眉页脚463
11.2利用Word打印报表465
实例295将页面中的表格导出到Word并打印465
实例296打开指定的Word文档并打印467
实例297在JSP中利用Word自动打印指定格式的会议记录468
实例298在ASP中利用Word自动打印指定格式的会议记录470
实例299在PHP中调用Word自动打印指定格式的会议记录472
11.3利用Excel打印报表474
实例300将Web页面中的数据导出到Excel474
实例301将Web页面中的数据导出到Excel并自动打印476
11.4利用CSS样式打印478
实例302利用CSS样式打印页面中的指定内容478
实例303利用CSS样式分页打印479
11.5套打邮寄产品单482
实例304打印汇款单482
实例305打印快递单484
实例306打印信封485
第12章网站安全489
12.1禁止用户复制网页内容490
实例307禁止用户复制网页内容(方法一)490
实例308禁止用户复制网页内容(方法二)491
实例309禁止网页另存为492
12.2禁止用户刷新屏幕493
实例310屏蔽IE主菜单493
实例311屏蔽键盘相关事件494
实例312屏蔽鼠标右键496
12.3登录页面497
实例313具有浏览器检测功能的登录页面497
实例314防止SQL注入的登录页面498
实例315带验证码的登录页面500
12.4其他501
实例316使用Script Encoder加密工具加密501
第13章HTML/CSS样式503
13.1页面效果504
实例317统一站内网页风格504
实例318设置超级链接文字的样式508
实例319网页换肤509
实例320滚动文字512
实例321制作渐变背景513
13.2表格样式514
实例322只有外边框的表格515
实例323彩色外边框的表格516
实例324控制表格指定外边框不显示518
实例325背景颜色渐变的表格520
实例326表格隔行变色521
13.3鼠标及滚动条样式522
实例327显示自定义鼠标形状522
实例328动画光标524
实例329制作彩色滚动条525
13.4文字及列表样式527
实例330应用删除线样式标记商品特价527
实例331在文字上方标注说明标记528
实例332指定图标的列表项529
13.5文字滤镜特效530
实例333文字的发光效果531
实例334文字的阴影效果532
实例335文字的渐变阴影效果533
实例336文字的图案填充效果534
实例337文字的探照灯效果535
实例338文字的闪烁效果537
实例339文字的空心效果538
实例340文字的浮雕效果539
实例341文字的阳文效果540
实例342文字的雪雕效果541
实例343火焰字542
实例344文字扭曲动画544
13.6图片滤镜特效545
实例345图片的半透明效果545
实例346图片的模糊效果546
实例347图片的水波纹特效547
实例348图片的灰度效果548
实例349图片的动态说明文字549
第14章 JavaScript与XML553
14.1读取XML文件554
实例350使用XML DOM对象读取XML文件554
实例351使用XMLHttpRequest对象读取XML文件557
14.2显示XML文档559
实例352使用CSS显示XML文档559
实例353使用XSL显示XML文档562
实例354使用IE XML数据岛输出XML文档564
14.3操作XML565
实例355用JavaScript控制XML文档的分页显示565
实例356通过操作XML数据岛实现添加、删除留言信息567
第15章JavaScript与ASP结合573
15.1弹出窗口/对话框控制574
实例357关闭弹出窗口时刷新父窗口574
实例358打开新窗口显示详细信息575
实例359弹出网页模式对话框577
实例360日期选择器580
实例361弹出提示对话框并重定向网页584
实例362打开指定大小的新窗口并居中显示586
15.2弹出确认对话框588
实例363删除数据前弹出确认对话框588
实例364安全退出前弹出确认对话框590
15.3其他591
实例365远程获取其他网页情报591
实例366树状导航菜单594
实例367使用XML实现不刷新页面查询数据596
第16章JavaScript与JSP结合601
16.1窗口与对话框602
实例368弹出提示对话框并重定向网页602
实例369打开新窗口显示详细信息604
实例370打开指定大小的新窗口并居中显示605
实例371弹出网页模式对话框607
实例372关闭弹出窗口时刷新父窗口609
16.2无刷新技术611
实例373无刷新的用户名检测611
实例374无刷新的级联下拉列表614
实例375使用XML实现不刷新页面查询数据616
16.3调用与控制619
实例376将查询结果导出到Word619
实例377调用Excel621
实例378调用PowerPoint622
16.4其他623
实例379树状导航菜单623
第17章JavaScript与ASP.NET结合627
17.1窗口与对话框628
实例380使用JavaScript脚本弹出对话框628
实例381打开新窗口显示详细信息629
实例382关闭弹出窗口刷新父窗口631
实例383弹出网页模式对话框633
实例384弹出全屏显示网页635
17.2其他637
实例385自动隐藏式菜单637
第18章JavaScript与PHP结合641
18.1窗口与对话框642
实例386弹出提示对话框并重定向网页642
实例387关闭弹出窗口时自动刷新父窗口643
实例388在弹出的网页模式对话框中选择个性头像645
实例389时间选择器647
实例390弹出提示对话框并重定向网页649
实例391删除数据前弹出确认对话框650
18.2其他651
实例392树状导航菜单651
第19章综合应用657
19.1计算器658
实例393简单计算器658
实例394复杂计算器662
19.2日历667
实例395精美日历668
实例396带农历的日历674
19.3购物车681
实例397添加至购物车682
实例398查看购物车684
实例399修改商品购买数量686
实例400从购物车中移去指定商品687
实例401清空购物车689
JavaScript程序开发范例宝典附录691
『柒』 求一段javascript正则表达式,100分
以前搜集老改闷了很久 全给你了
匹配中文字符的正则表达式: [\u4e00-\u9fa5]
匹配双字节字符(包括汉字在内):[^\x00-\xff]
匹配空行的正则表达式:\n[\s| ]*\r
匹配HTML标记的正则表达式:/<(.*)>.*<\/\1>|<(.*) \/>/
匹配首尾空格的正则表达式:(^\s*)|(\s*$)
匹配Email地址的正则表达式:\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*
匹配网址URL的正则表达式:http://([\w-]+\.)+[\w-]+(/[\w- ./?%&=]*)?
(1)应用:计算字符串的长度(一个双字节字符长度计2,ASCII字符计1)
String.prototype.len=function(){return this.replace([^\x00-\xff]/g,"aa").length;}
(2)应用:javascript中没有像vbscript那样的trim函数,我们侍弯就可以利用这个表达式来实现
String.prototype.trim = function()
{
return this.replace(/(^\s*)|(\s*$)/g, "");
}
(3)应用:利用正则表达式分解和转换IP地址
function IP2V(ip) //IP地址转换成对应数值
{
re=/(\d+)\.(\d+)\.(\d+)\.(\d+)/g //匹配IP地址的正则表达式
if(re.test(ip))
{
return RegExp.$1*Math.pow(255,3))+RegExp.$2*Math.pow(255,2))+RegExp.$3*255+RegExp.$4*1
}
else
{
throw new Error("Not a valid IP address!")
}
}
(4)应用:从URL地址中提取文件名的javascript程序
s="http://www.9499.net/page1.htm";
s=s.replace(/(.*\/){0,}([^\.]+).*/ig,"$2") ; //Page1.htm
(5)应用:利用正则表达式限制网页表单里的文本框输入内容
用正则表达式限制只能输入中文:onkeyup="value=value.replace(/[^\u4E00-\u9FA5]/g,'')" onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^\u4E00-\u9FA5]/g,''))"
用歼如正则表达式限制只能输入全角字符: onkeyup="value=value.replace(/[^\uFF00-\uFFFF]/g,'')" onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^\uFF00-\uFFFF]/g,''))"
用正则表达式限制只能输入数字:onkeyup="value=value.replace(/[^\d]/g,'') "onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^\d]/g,''))"
用正则表达式限制只能输入数字和英文:onkeyup="value=value.replace(/[\W]/g,'') "onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^\d]/g,''))"
====================================================
正则表达式大全
正则表达式用于字符串处理,表单验证等场合,实用高效,但用到时总是不太把握,以致往往要上网查一番。我将一些常用的表达式收藏在这里,作备忘之用。本贴随时会更新。
匹配中文字符的正则表达式: [\u4e00-\u9fa5]
匹配双字节字符(包括汉字在内):[^\x00-\xff]
应用:计算字符串的长度(一个双字节字符长度计2,ASCII字符计1)
String.prototype.len=function(){return this.replace([^\x00-\xff]/g,"aa").length;}
匹配空行的正则表达式:\n[\s| ]*\r
匹配HTML标记的正则表达式:/<(.*)>.*<\/\1>|<(.*) \/>/
匹配首尾空格的正则表达式:(^\s*)|(\s*$)
应用:javascript中没有像vbscript那样的trim函数,我们就可以利用这个表达式来实现,如下:
String.prototype.trim = function()
{
return this.replace(/(^\s*)|(\s*$)/g, "");
}
利用正则表达式分解和转换IP地址:
下面是利用正则表达式匹配IP地址,并将IP地址转换成对应数值的javascript程序:
function IP2V(ip)
{
re=/(\d+)\.(\d+)\.(\d+)\.(\d+)/g //匹配IP地址的正则表达式
if(re.test(ip))
{
return RegExp.$1*Math.pow(255,3))+RegExp.$2*Math.pow(255,2))+RegExp.$3*255+RegExp.$4*1
}
else
{
throw new Error("Not a valid IP address!")
}
}
不过上面的程序如果不用正则表达式,而直接用split函数来分解可能更简单,程序如下:
var ip="10.100.20.168"
ip=ip.split(".")
alert("IP值是:"+(ip[0]*255*255*255+ip[1]*255*255+ip[2]*255+ip[3]*1))
匹配Email地址的正则表达式:\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*
匹配网址URL的正则表达式:http://([\w-]+\.)+[\w-]+(/[\w- ./?%&=]*)?
利用正则表达式去除字串中重复的字符的算法程序:[注:此程序不正确,原因见本贴回复]
var s="abacabefgeeii"
var s1=s.replace(/(.).*\1/g,"$1")
var re=new RegExp("["+s1+"]","g"?琼?涡獢p?????浜睹扥潜桴牥掼极慢?瑨m?)
var s2=s.replace(re,"")
alert(s1+s2) //结果为:abcefgi
我原来在CSDN上发贴寻求一个表达式来实现去除重复字符的方法,最终没有找到,这是我能想到的最简单的实现方法。思路是使用后向引用取出包括重复的字符,再以重复的字符建立第二个表达式,取到不重复的字符,两者串连。这个方法对于字符顺序有要求的字符串可能不适用。
得用正则表达式从URL地址中提取文件名的javascript程序,如下结果为page1
s="http://www.9499.net/page1.htm"
s=s.replace(/(.*\/){0,}([^\.]+).*/ig,"$2")
alert(s)
利用正则表达式限制网页表单里的文本框输入内容:
用正则表达式限制只能输入中文:onkeyup="value=value.replace(/[^\u4E00-\u9FA5]/g,'')" onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^\u4E00-\u9FA5]/g,''))"
用正则表达式限制只能输入全角字符: onkeyup="value=value.replace(/[^\uFF00-\uFFFF]/g,'')" onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^\uFF00-\uFFFF]/g,''))"
用正则表达式限制只能输入数字:onkeyup="value=value.replace(/[^\d]/g,'') "onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^\d]/g,''))"
用正则表达式限制只能输入数字和英文:onkeyup="value=value.replace(/[\W]/g,'') "onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^\d]/g,''))"
补充:
^\d+$ //匹配非负整数(正整数 + 0)
^[0-9]*[1-9][0-9]*$ //匹配正整数
^((-\d+)|(0+))$ //匹配非正整数(负整数 + 0)
^-[0-9]*[1-9][0-9]*$ //匹配负整数
^-?\d+$ //匹配整数
^\d+(\.\d+)?$ //匹配非负浮点数(正浮点数 + 0)
^(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*))$ //匹配正浮点数
^((-\d+(\.\d+)?)|(0+(\.0+)?))$ //匹配非正浮点数(负浮点数 + 0)
^(-(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*)))$ //匹配负浮点数
^(-?\d+)(\.\d+)?$ //匹配浮点数
^[A-Za-z]+$ //匹配由26个英文字母组成的字符串
^[A-Z]+$ //匹配由26个英文字母的大写组成的字符串
^[a-z]+$ //匹配由26个英文字母的小写组成的字符串
^[A-Za-z0-9]+$ //匹配由数字和26个英文字母组成的字符串
^\w+$ //匹配由数字、26个英文字母或者下划线组成的字符串
^[\w-]+(\.[\w?琼?涡獢p?????浜睹扥潜桴牥掼极慢?瑨m?-]+)*@[\w-]+(\.[\w-]+)+$ //匹配email地址
^[a-zA-z]+://匹配(\w+(-\w+)*)(\.(\w+(-\w+)*))*(\?\S*)?$ //匹配url
利用正则表达式去除字串中重复的字符的算法程序:
var s="abacabefgeeii"
var s1=s.replace(/(.).*\1/g,"$1")
var re=new RegExp("["+s1+"]","g")
var s2=s.replace(re,"")
alert(s1+s2) //结果为:abcefgi
===============================
如果var s = "abacabefggeeii"
结果就不对了,结果为:abeicfgg
正则表达式的能力有限
RE: totoro
谢谢你的指点,这个javascript正则表达式程序算法确实有问题,我会试着找更好的办法!!!
1.确认有效电子邮件格式
下面的代码示例使用静态 Regex.IsMatch 方法验证一个字符串是否为有效电子邮件格式。如果字符串包含一个有效的电子邮件地址,则 IsValidEmail 方法返回 true,否则返回 false,但不采取其他任何操作。您可以使用 IsValidEmail,在应用程序将地址存储在数据库中或显示在 ASP.NET 页中之前,筛选出包含无效字符的电子邮件地址。
[Visual Basic]
Function IsValidEmail(strIn As String) As Boolean
' Return true if strIn is in valid e-mail format.
Return Regex.IsMatch(strIn, ("^([\w-\.]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([\w-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$")
End Function
[C#]
bool IsValidEmail(string strIn)
{
// Return true if strIn is in valid e-mail format.
return Regex.IsMatch(strIn, @"^([\w-\.]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([\w-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$");
}
2.清理输入字符串
下面的代码示例使用静态 Regex.Replace 方法从字符串中抽出无效字符。您可以使用这里定义的 CleanInput 方法,清除掉在接受用户输入的窗体的文本字段中输入的可能有害的字符。CleanInput 在清除掉除 @、-(连字符)和 .(句点)以外的所有非字母数字字符后返回一个字符串。
[Visual Basic]
Function CleanInput(strIn As String) As String
' Replace invalid characters with empty strings.
Return Regex.Replace(strIn, "[^\w\.@-]", "")
End Function
[C#]
String CleanInput(string strIn)
?琼?涡獢p?????浜睹扥潜桴牥掼极慢?瑨m?{
// Replace invalid characters with empty strings.
return Regex.Replace(strIn, @"[^\w\.@-]", "");
}
3.更改日期格式
以下代码示例使用 Regex.Replace 方法来用 dd-mm-yy 的日期形式代替 mm/dd/yy 的日期形式。
[Visual Basic]
Function MDYToDMY(input As String) As String
Return Regex.Replace(input, _
"\b(?<month>\d{1,2})/(?<day>\d{1,2})/(?<year>\d{2,4})\b", _
"${day}-${month}-${year}")
End Function
[C#]
String MDYToDMY(String input)
{
return Regex.Replace(input,
"\\b(?<month>\\d{1,2})/(?<day>\\d{1,2})/(?<year>\\d{2,4})\\b",
"${day}-${month}-${year}");
}
Regex 替换模式
本示例说明如何在 Regex.Replace 的替换模式中使用命名的反向引用。其中,替换表达式 ${day} 插入由 (?<day>...) 组捕获的子字符串。
有几种静态函数使您可以在使用正则表达式操作时无需创建显式正则表达式对象,而 Regex.Replace 函数正是其中之一。如果您不想保留编译的正则表达式,这将给您带来方便
4.提取 URL 信息
以下代码示例使用 Match.Result 来从 URL 提取协议和端口号。例如,“http://www.contoso.com:8080/letters/readme.html”将返回“http:8080”。
[Visual Basic]
Function Extension(url As String) As String
Dim r As New Regex("^(?<proto>\w+)://[^/]+?(?<port>:\d+)?/", _
RegexOptions.Compiled)
Return r.Match(url).Result("${proto}${port}")
End Function
[C#]
String Extension(String url)
{
Regex r = new Regex(@"^(?<proto>\w+)://[^/]+?(?<port>:\d+)?/",
RegexOptions.Compiled);
return r.Match(url).Result("${proto}${port}");
}
今天有网友问:如何用正则表达式表示要么是数字要么是字母 是字母的话只能是一个字母 数字则无所谓?
我的回答是:
^[a-zA-Z]$|^\d+$
『捌』 关于JS获取IP的写法!
一、使用JS获取客户端IP的几个方法
方法一(只针对IE且客户端的IE允许AcitiveX运行,通过台:XP,SERVER03,2000)。
获取客户端IP代码:
代码如下:
<HTML>
<HEAD>
<TITLE>GetLocalIP</TITLE>
</HEAD>
<BODY>
获取IP:
<script language="JavaScript"> function GetLocalIPAddr(){ var
oSetting = null; var ip = null; try{ oSetting = new
ActiveXObject("rcbdyctl.Setting"); ip = oSetting.GetIPAddress; if
(ip.length == 0){ return "没有连接到Internet"; } oSetting = null; }catch(e){
return ip; } return ip; } document.write(GetLocalIPAddr()+"<br/>")
</script>
</BODY>
</HTML>
方法二(所有的平台及浏览器):
获取客户端处在网络中的IP,前提是客户得联网。使用的是新浪接口。
代码如下:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>JavaScript获取客户端IP[利用新浪接口]</title>
</head>
<body>
<script type="text/javascript" src="http://counter.sina.com.cn/ip/" charset="gb2312"></script> <!--获取接口数据,注意charset -->
<script type="text/javascript">
document.writeln("IP地址:"+ILData[0]+"<br />"); //输出接口数据中的IP地址
document.writeln("地址类型:"+ILData[1]+"<br />"); //输出接口数据中的IP地址的类型
document.writeln("地址类型:"+ILData[2]+"<br />"); //输出接口数据中的IP地址的省市
document.writeln("地址类型:"+ILData[3]+"<br />"); //输出接口数据中的IP地址的
document.writeln("地址类型:"+ILData[4]+"<br />"); //输出接口数据中的IP地址的运营商
</script>
</body>
</html>
方法三(所有的平台及浏览器):
使用的搜狐接口
代码如下:
<script src="http://pv.sohu.com/cityjson?ie=utf-8"></script>
<script type="text/javascript">
document.write(returnCitySN["cip"]+','+returnCitySN["cname"])
</script>