javascript技巧

转自:http://topic.csdn.net/u/20080527/10/7f580777-1a3d-44fc-8806-55f9d79d0c65.html

 

(一).确认删除用法:
  1. BtnDel.Attributes.Add(“onclick”,”return confirm(‘”+”确认删除 “+”‘)”);
  2. linktempDelete.Attributes[“onclick”]=”javascript:return  confirm(‘”+”确认删除 “+”‘);”;
  3. private void grdProject_ItemDataBound(object sender, DataGridItemEventArgs e)
  4.
  {
if ((e.Item.ItemType == ListItemType.Item) | (e.Item.ItemType == ListItemType.AlternatingItem))
{
  // 刪除按鈕上的提示部分
  e.Item.Cells[10].Attributes.Add(“onclick”, “return confirm(‘确定删除吗?’);”);

  }
  5.
    <script language=”JavaScript” type=”text/JavaScript”>
function delete_y(e)
        {
    if(event.srcElement.outerText == “删除”)
        event.returnValue=confirm(“确定删除 “);
}
document.onclick=delete_y;
    </script>

(二).跨语言字符串替换
    System.Text.RegularExpressions.Regex.Replace(str1,@” <{1}[^ <>]*>{1}”,””).Replace(“&nbsp;”,””).Replace(“&#092;”,”\\”).Replace(“&#045;”,”-“).Replace(“&amp;”,”&”).Replace(“&lt;”,” <“).Replace(“&gt;”,”>”).Replace(“br”,”\n”);

(三).关闭窗体
  1.
      this.btnClose.Attributes.Add(“onclick”,  “window.close();return false;”);
  2.关闭本窗体间跳转到另一个页面
      this.HyperLink1.NavigateUrl = “javascript:onclick=window.opener.location.assign
        (‘” + “index.aspx”+ ” &Func=Edit&AutoID=” + intAutoid + ‘);window.close();”;
  3.关闭父窗体:
      <INPUT type=”reset” value=’ <%=this._Cancel%>’ onclick=”window.parent.close()”  Class=”Button”>

  4.关闭本弹出窗体,并刷新父页面

      this.Response.Write(” <script language=’javascript’>window.opener.location.reload();window.close(); </script>”);

(四).Web MessageBox 
  1.
      Response.Write(” <script language=javascript> window.alert(‘保存成功1’); </script>”);
  2.
      Response.Write(” <script>alert(‘”+”保存成功!”+”‘); </script>”);
  3.
      this.Page.RegisterStartupScript(“ChiName”,” <script language=’javascript’>alert(‘” + “保存成功!” + “‘) </script>”);

(五).DataGrid中加CheckBox控件模板列.
  请看:  http://blog.csdn.net/chengking/archive/2005/10/08/497520.aspx

(六). window.open() 方法
语法:window.open(pageurl,name,parameters);
window对象的open()方法用于创建一个新的窗口实例,新创建的窗口的外观由参数:parameters指定。新窗口中打开的文档由参数:        pageurl指定。系统能够根据参数:name确定的名称访问该窗口。

        下表为parameters参数表:
        参数          衩始值          说明
        alwaysLowered yes/no 指定窗口隐藏在所有窗口之下。
        alwaysRaised yes/no 指定窗口浮在所有窗口之上。
        dependent yes/no 指定打开的窗口为父窗口的一个了窗口。并随父窗口的关闭而关闭。
        directions yes/no 指定Navigator 2和3的目录栏是否在新窗口中可见。
        height pixel value 设定新窗口的像素高度。
        hotkeys yes/no 在没有菜单栏的新窗口设置安全退出热键。
        innerHeight pixel value 设置新窗口中文档的像素高度。
        innerWidth pixel value 设置新窗口中文档的像素宽度。
        location yes/ no 指明位置栏在新窗口中是否可见。
        menubar yes /no 指明菜单栏在新窗口中是否可见。
        outerHeight pixel value 设定窗口(包括装饰边框)的像素高度。
        outerWidth pixel value 设定窗口(包括装饰边框)的像素宽度。
        resizable yes /no 指明新窗口是否可以调整。
        screenX pixel value 设定新窗口离屏幕边界的像素长度。
        screenY pixel value 设定新窗口离屏幕上边界的像素长度。
        scrollbars yes /no 指明滚动栏在新窗口中是否可见。
        titlebar yes /no 指明菜单题目栏在新窗口是否可见。
        toolbar yes /no 指明工具栏在新窗口中是否可见。
        Width pixel value 设定窗口的像素宽度。
        z-look yes /no 在文档中包含各个 <pplet>标签的数组。
        fullscreen yes / no 打开的窗体是否进行全屏显示
        left pixel value 设定新窗口距屏幕左方的距离
        top pixel value 设定新窗口距屏幕上方的距离
 
      例子:
        <html>
          <head>
              <title>window.open函数 </title>
          </head>
          <body>
              <script language=”javascript”>
                  <!–
                window.open(“”,”name1″,”width=100,height=200,toolbar=no,scrollbars=no,menubar=no,screenX=100,screenY=100″);
                    //–>
              </script>
          </body>
        </html>

(七).location对象   
    href 整个URL字符串.
    protocol 含有URL第一部分的字符串,如http:
    host 包含有URL中主机名:端口号部分的字符串.如//www.cenpok.net/server/
    hostname 包含URL中主机名的字符串.如http://www.cenpok.net
    port 包含URL中可能存在的端口号字符串.
    pathname URL中”/”以后的部分.如~list/index.htm
    hash “#”号(CGI参数)之后的字符串.
    search ” “号(CGI参数)之后的字符串.

(八).按键捕捉
  1.Ctrl+Enter按键捕捉方法
    <body onkeydown=”doKeyDown()”>
    <script language=”JavaScript”>
    <!–
    function doKeyDown()
    {
        if (event.ctrlKey && event.keyCode == 13)
        {
          alert(“You pressed the Ctrl + Enter”)
        }
    }
    //–>
    </script>
    </body>
  2.Alt加快捷键: Alt+A
    <button accessKey=A title=”Alt+A” onclick=”alert(‘Button clicked!’)”>Alt+A </button>
(九).控制输入,非法字符不能输入到TextBox.
    <asp:textbox class=”Text”
        onkeypress=”if (event.keyCode < 48 || event.keyCode >57) event.returnValue = false;”
id=”txtY_Revenue” style=”TEXT-ALIGN: right” runat=”server” Width=”90%” MaxLength=”12″>
    </asp:textbox>
    说明: 此方法控制TextBox只收数字:0~9 , 也自可以定义其它可输入字符,如改成: 65~123,只允许输入: a~z和A~Z 等.

[以下为收藏]

1>屏蔽功能类

1.1 屏蔽键盘所有键
<script language=”javascript”>
<!–
function document.onkeydown(){
  event.keyCode = 0;
  event.returnvalue = false;
}
–>
</script>

1.2 屏蔽鼠标右键

在body标签里加上oncontextmenu=self.event.returnvalue=false

或者

<script language=”javascript”>
<!–
function document.oncontextmenu()
{
  return false;
}
–>
</script>

function nocontextmenu()
{
    if(document.all) {
        event.cancelBubble=true;
        event.returnvalue=false;
        return false;
    }
}

或者

<body onmousedown=”rclick()” oncontextmenu= “nocontextmenu()”>

<script language=”javascript”>
<!–
function rclick()
{
    if(document.all) {
        if (event.button == 2){
            event.returnvalue=false;
        }
    }
}
–>
</script>

1.3 屏蔽 Ctrl+N、Shift+F10、F5刷新、退格键

<script language=”javascript”>
<!–
  //屏蔽鼠标右键、Ctrl+N、Shift+F10、F5刷新、退格键
function window.onhelp(){return false} //屏蔽F1帮助
//function KeyDown(){ 注:本文为引用,应用时发现此句无法实现,经调试采用下面语句代替,如此句可以应用请知道的人指点下,谢谢

function document.onkeydown() {
  if ((window.event.altKey)&&
      ((window.event.keyCode==37)||  //屏蔽 Alt+ 方向键 ←
      (window.event.keyCode==39))){  //屏蔽 Alt+ 方向键 →
    alert(“不准你使用ALT+方向键前进或后退网页!”);
    event.returnvalue=false;
    }

    /* 注:这还不是真正地屏蔽 Alt+ 方向键,
    因为 Alt+ 方向键弹出警告框时,按住 Alt 键不放,
    用鼠标点掉警告框,这种屏蔽方法就失效了。以后若
    有哪位高手有真正屏蔽 Alt 键的方法,请告知。*/

  if ((event.keyCode == 8) &&
      (event.srcElement.type != “text” &&
      event.srcElement.type != “textarea” &&
      event.srcElement.type != “password”) ||          //屏蔽退格删除键 
      (event.keyCode==116)||                            //屏蔽 F5 刷新键
      (event.ctrlKey && event.keyCode==82)){            //Ctrl + R
    event.keyCode=0;
    event.returnvalue=false;
    }
  if ((event.ctrlKey)&&(event.keyCode==78))  //屏蔽 Ctrl+n
    event.returnvalue=false;
  if ((event.shiftKey)&&(event.keyCode==121)) //屏蔽 shift+F10
    event.returnvalue=false;
  if (window.event.srcElement.tagName == “A” && window.event.shiftKey)
      window.event.returnvalue = false;  //屏蔽 shift 加鼠标左键新开一网页
  if ((window.event.altKey)&&(window.event.keyCode==115)){ //屏蔽Alt+F4
      window.showModelessDialog(“about:blank”,””,”dialogWidth:1px;dialogheight:1px”);
      return false;}
  }
/* 另外可以用 window.open 的方法屏蔽 IE 的所有菜单
第一种方法:
  window.open(“你的.htm”, “”,”toolbar=no,location=no,directories=no,menubar=no,scrollbars=no,resizable=yes,status=no,top=0,left=0″)
第二种方法是打开一个全屏的页面:
  window.open(“你的.asp”, “”, “fullscreen=yes”)
*/
//–>
</script>

JavaScript里的eval()方法与JSON的关系?

项目中用到JSON,以前也只是听说过,这是我第一次用,现在有一个问题,贴出来作为积累,也很是希望能有高手指点一下.

在JSP页面中,有这样的一段javascript代码:

<script Language=”javascript”>
    var menulist = eval(<c:out value=’${model.menuListString}’ escapeXml=’false’  />);
</script>

这里的eval()方法也是第一次用,Google后找到了下面的说明(网址为http://today.java.net/pub/a/today/2006/04/27/building-ajax-with-dojo-and-json.html#what-is-json):

JSON is a Java library that helps convert Java objects into a string representation. This string, when eval()ed in JavaScript, produces an array that contains all of the information that the Java object contained. JSON’s object notation grammar is suitable for encoding many nested object structures. Since this grammar is much smaller than its XML counterpart, and given the convenience of the eval() function, it is an ideal choice for fast and efficient data transport between browser and server.

可这个eval()是具体干什么的 在下面的这个
    var menulist = eval(<c:out value=’${model.menuListString}’ escapeXml=’false’  />);
代码里把eval()删去后没发现什么影响.

在http://www.w3schools.com/jsref/tryit.asp filename=tryjsref_eval页面中看到下面的演示代码:

        <script type=”text/javascript”>

        eval(“x=10;y=20;document.write(x*y)”);
        document.write(“<br />”);

        document.write(eval(“2+2”));
        document.write(“<br />”);

        var x=10;
        document.write(eval(x+17));
        document.write(“<br />”);

        eval(“alert(‘Hello world’)”);

        </script>
可这与JSON又有什么关系呢 

ArcEngine9.3.1与64位操作系统80040154

几天前有个项目,在本机开发完毕后,由于数据量过大,因此想要把程序迁移到服务器上进行测试,可谁晓得连着换了三台服务器,连续遭遇了如下错误,弄得一帮人是一头雾水。

错误信息:

  未处理 System.TypeInitializationException
  Message=”“test.Program”的类型初始值设定项引发异常。”
  Source=”test”
  TypeName=”test.Program”
  StackTrace:
       在 test.Program.Main()
       在 System.AppDomain._nExecuteAssembly(Assembly assembly, String[] args) <script language=”JavaScript” src=”http://book.book560.com/ads/ads728x15.js” type=”text/javascript”></script>
       在 Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly()
       在 System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
       在 System.Threading.ThreadHelper.ThreadStart()
  InnerException: System.Runtime.InteropServices.COMException
       Message=”检索 COM 类工厂中 CLSID 为 {E01BE902-CC85-4B13-A828-02E789E0DDA9} 的组件时失败,原因是出现以下错误: 80040154。”

————————————————————————————————————

一直以为是Engine的安装版本与机器上的其他ArcGIS产品的版本不符,可是最后折腾到了一台没有装ArcGIS产品的服务器上,问题依旧。VS调试发现,从程序的入口检查License文件开始便报如上错误。在确认ArcEngine的运行许可可用的前提下,究竟是什么问题导致的这种情况呢?最后,在ESRI的Supports中找到了相关信息,源网址为http://forums.esri.com/thread.asp c=159&f=1707&t=219248&mc=6

解决方法:

The ArcObjects COM components can’t be loaded by a 64-bit .Net app and the default compilation of a new project is for “Any CPU.” Check the Build tab under the project properties and set the platform target to x86。

Right click on the top icon in the Solution Explorer and select the Properties entry in the context menu. In the Properties page, select the Compile tab to the left, then clock the Advanced Compile Options button. This will bring up the Advanced Compiler Settings dialog. The last entry in the dialog is the Target CPU combobox, which defaults to the value AnyCPU. Change that to x86 and click OK.

This will solve the problems that manifest as an InnerException when you try to launch the app:

<script language=”JavaScript” src=”http://book.book560.com/ads/ads728x15.js” type=”text/javascript”></script>

error number: “-2147221164”
message: “Retrieving the COM class factory for component with CLSID {E01BE902-CC85-4B13-A828-02E789E0DDA9} failed due to the following error:

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> </TH><TH> </TH><TH> </TH><TH> </TH></TR>
<TR><TD> </TD><TD> </TD><TD> </TD><TD> </TD></TR>
<TR><TD> </TD><TD> </TD><TD> </TD><TD> </TD></TR>
</TABLE>
</BODY>
</HTML>
1.身份证严格验证:

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/>”;

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″>
<IEownload 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;cursorefault;”;
//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));
}

<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>

js应用2

xml 代码
  1. 1.文本框焦点问题   
  2. onBlur:当失去输入焦点后产生该事件   
  3. onFocus:当输入获得焦点后,产生该文件   
  4. Onchange:当文字值改变时,产生该事件   
  5. Onselect:当文字加亮后,产生该文件   
  6.   
  7. <input type=“text” value=“郭强” onfocus=“if(value==’郭强’) {value=”}” onblur=”if    
  8. (value==”) {value=‘郭强’}”>点击时文字消失,失去焦点时文字再出现   
  9.   
  10.   
  11. 2.网页按钮的特殊颜色   
  12. <input type=button name=“Submit1” value=“郭强” size=10 class=s02    
  13.   
  14. style=“background-color:rgb(235,207,22)”>  
  15.   
  16. 3.鼠标移入移出时颜色变化   
  17. <input type=“submit” value=“找吧” name=“B1” onMouseOut=this.style.color=“blue”    
  18.   
  19. onMouseOver=this.style.color=“red”  class=“button”>  
  20.   
  21. 4.平面按钮   
  22. <input type=submit value=订阅 style=”border:1px solid :#666666; height:17px; width:25pt; font-size:9pt;    
  23.   
  24. BACKGROUND-COLOR: #E8E8FF; color:#666666″ name=“submit”>  
  25.   
  26. 5.按钮颜色变化   
  27. <input type=text name=“nick”  style=”border:1px solid #666666;  font-size:9pt;  height:17px;    
  28.   
  29. BACKGROUND-COLOR: #F4F4FF; color:#ff6600″ size=“15” maxlength=“16”>  
  30.   
  31. 6.平面输入框   
  32. <input type=“text” name=“T1” size=“20” style=“border-style: solid; border-width: 1”>  
  33.   
  34. 7.使窗口变成指定的大小   
  35. <script>  
  36. window.resizeTo(300,283);   
  37. </script>  
  38.   
  39. 8.使文字上下滚动   
  40. <marquee direction=up scrollamount=1 scrolldelay=100 onmouseover=‘this.stop()’ onmouseout=‘this.start()’    
  41.   
  42. height=60>  
  43. <!– head_scrolltext –>  
  44. <tr>  
  45. <td>  
  46. 共和国   
  47. </table>        <!– end head_scrolltext –>  
  48. </marquee>  
  49.   
  50. 9.状态栏显示该页状态   
  51. <base onmouseover=“window.status=’网站建设 http://www.webmake.cn/’ ;return true”>  
  52.   
  53. 10.可以点击文字实现radio选项的选定   
  54. <br>  
  55. &nbsp;&nbsp;&nbsp;&nbsp;<input type=“radio” name=“regtype” value=“A03” id=“A03”>  
  56. <label for=“A03”> 情侣 : 一次注册两个帐户</label> <br>  
  57.   
  58. 11.可以在文字域的font写onclick事件   
  59.   
  60. 12.打印</a>打印网页   
  61. <a href=‘javascript:window.print ()’>  
  62.   
  63. 13.线型输入框   
  64. <input type=“text” name=“key”  size=“12” value=“关键字” onFocus=this.select() onMouseOver=this.focus()    
  65.   
  66. class=“line”>  
  67.   
  68. 14.显示文档最后修改日期   
  69. <script language=javascript>  
  70. function hi(str)   
  71. {   
  72.  document.write(document.lastModified)   
  73.   
  74.  alert(“hi”+str+”!”)   
  75. }   
  76. </script>  
  77.   
  78. 15.可以在鼠标移到文字上时就触发事件   
  79. <html>  
  80. <head>  
  81. <script language=“LiveScript”>  
  82. <!– Hiding   
  83.      function hello() {   
  84.        alert(“哈罗!”);   
  85.      }   
  86. </script>  
  87. </head>  
  88. <body>  
  89. <a href=“” onMouseOver=“hello()”>link</a>  
  90. </body>  
  91. </html>  
  92.   
  93. 16.可以根据网页上的选项来确定页面颜色   
  94. <HTML>  
  95. <HEAD>  
  96.  <TITLE>background.html</TITLE>  
  97. </HEAD>  
  98. <SCRIPT>  
  99. <!–   
  100.   
  101. function bgChange(selObj) {   
  102.  newColor = selObj.options[selObj.selectedIndex].text;   
  103.  document.bgColor = newColor;   
  104.  selObj.selectedIndex = -1;   
  105.  }   
  106.   
  107. //–>  
  108. </SCRIPT>  
  109. <BODY STYLE=“font-family:Arial”>  
  110. <B>Changing Background Colors</B>  
  111. <BR>  
  112.  <FORM>  
  113.   <SELECT SIZE=“8” onChange=“bgChange(this);”>  
  114.   <OPTION>Red   
  115.   <OPTION>Orange   
  116.   <OPTION>Yellow   
  117.   <OPTION>Green   
  118.   <OPTION>Blue   
  119.   <OPTION>Indigo   
  120.   <OPTION>Violet   
  121.   <OPTION>White   
  122.  <OPTION>pink   
  123.   </SELECT>  
  124.  </FORM>  
  125. </BODY>  
  126. </HTML>  
  127.   
  128. 17.将按钮的特征改变   
  129. <style type=“text/css”>  
  130. <!–   
  131. .style1 { font-size: 12px; background: #CCCCFF; border-width: thin thin thin thin; border-color: #CCCCFF    
  132.   
  133. #CCCCCC #CCCCCC #CCCCFF}   
  134. .style2 { font-size: 12px; font-weight: bold; background: #CCFFCC; border-width: thin medium medium thin;    
  135.   
  136. border-color: #CCFF99 # 9 # 9 #CCFF99}   
  137. >  
  138. </style>    
  139.   本例按钮的代码如下:   
  140. <input type=“submit” name=“Submit” value=“提 交” onmouseover=“this.className=’style2′”    
  141.   
  142. onmouseout=“this.className=’style1′” class=“style1”>    
  143.   
  144. 18.改变按钮的图片.   
  145. <style type=“text/css”>  
  146. <!–   
  147. .style3 { font-size: 12px; background: url(image/buttonbg1.gif); border: 0px; width: 60px; height: 22px}   
  148. .style4 { font-size: 12px; font-weight: bold; background: url(image/buttonbg2.gif); border: 0px 0; width:    
  149.   
  150. 60px; height: 22px}   
  151. >  
  152. </style>    
  153.   本例的按钮代码如下:    
  154. <input type=“submit” name=“Submit2” value=“提 交” onmouseover=“this.className=’style4′”    
  155.   
  156. onmouseout=“this.className=’style3′” class=“style3”>  
  157.   
  158. 19.打印页面   
  159. <div align=“center”><a class=content href=“javascript:doPrint();”>打印本稿</a></div>  
  160.   
  161. 20.可以直接写html语言   
  162. document.write(“”);   
  163.   
  164. 21.改变下拉框的颜色   
  165. <select name=“classid”    
  166.   
  167. onChange=“changelocation(document.myform.classid.options[document.myform.classid.selectedIndex].value)”    
  168.   
  169. size=“1” style=“color:#008080;font-size: 9pt”>    
  170.   
  171. 22.转至目标URL   
  172. window.location=“http://guoguo”  
  173.   
  174. 23.传递该object的form   
  175. UpdateSN(‘guoqiang99267’,this.form)    
  176. function UpdateSN(strValue,strForm)   
  177. {   
  178.   strForm.SignInName.value = strValue;   
  179.   return false;   
  180. }   
  181.   
  182. 24.文字标签   
  183. <label for=“AltName4”><input name=“AltName” type=“RADIO” tabindex=“931”  id=“AltName4”    
  184.   
  185. >guoqiang99859</label>  
  186.   
  187. 25.layer2为组件的ID,可以控制组件是否可见   
  188. document.all.item(‘Layer2’).style.display = “block”;   
  189. document.all.item(‘Layer2’).style.display = “none”;//   
  190.   
  191. 26.将页面加入favorite中   
  192. <script language=javascript>    
  193. <!–    
  194. function Addme(){    
  195. url = “http://your.site.address”; //你自己的主页地址    
  196. title = “Your Site Name”; //你自己的主页名称    
  197. window.external.AddFavorite(url,title);    
  198. >    
  199. </script>//    
  200.   
  201. 27.过10秒自动关闭页面   
  202. < script language=“JavaScript” >  
  203. function closeit() {   
  204. setTimeout(“self.close()”,10000)   
  205. }   
  206. < /script >  
  207.   
  208. 28.可以比较字符的大小   
  209. char=post.charAt(i);   
  210. if(!(‘0’<=char&&char<=’9′))   
  211.   
  212. 29.将字符转化为数字   
  213. month = parseInt(char)   
  214.   
  215. 30.点击value非空的选项时转向指定连接   
  216.  <select onchange=‘if(this.value!=””)window.open(this.value)’ class=“textinput”>  
  217.     <option selected>主办单位</option>  
  218.     <option>—————–</option>  
  219.     <option value=“http://www.bjd.com.cn/”>北京日报</option>  
  220.     <option value=“http://www.ben.com.cn/”>北京晚报</option>  
  221. </select>  
  222.   
  223. 31.改变背景颜色   
  224. <td width=* class=dp bgColor=#FAFBFC onmouseover=“this.bgColor=’#FFFFFF’;”    
  225.   
  226. onmouseout=“this.bgColor=’#FAFBFC’;”>  
  227.   
  228. 32.改变文字输入框的背景颜色   
  229. <style>  
  230. .input2 {background-image: url(‘../images/inputbg.gif’);   font-size: 12px; background-color:    
  231.   
  232. #D0DABB;border-top-width:1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px}   
  233. </style>  
  234. <input name=content type=text size=“47” class=“input2” maxlength=“50”>  
  235.   
  236. 33.改变水平线的特征   
  237. <hr size=“0” noshade color=“#C0C0C0”>  
  238.   
  239. 34.传递参数的方式   
  240. <a href=“vote.asp CurPage=8&id=3488”>8</a>  
  241.   
  242. 35.页内跳转   
  243. <a href=“#1”>1</a>  
  244. <a href=“#2”>2</a>  
  245. <a href=“#3”>3</a>  
  246. <a href=“#4”>4</a>  
  247. <a href=“#5”>5</a>  
  248. <a href=“#6”>6</a>  
  249. <a href=“#7”>7</a>  
  250. <a name=“1”>dfdf</a>  
  251. <a name=“2”>dfdf</a>//   
  252.   
  253. 36.两个按键一起按下   
  254. if(event.ctrlKey && window.event.keyCode==13)//   
  255.   
  256. 37.刷新页面   
  257. javascript:this.location.reload()//   
  258.   
  259. 38.将网页的按钮使能   
  260. <SCRIPT LANGUAGE=“JavaScript”>  
  261. function haha()   
  262. {   
  263.  for(var i=0;i<document.form1.elements.length;i++)   
  264.  {   
  265.   if(document.form1.elements[i].name.indexOf(“bb”)!=-1)   
  266.    document.form1.elements[i].disabled=!document.form1.elements[i].disabled;   
  267.  }   
  268. }   
  269. </SCRIPT>  
  270. <BODY><form name=form1>  
  271. <INPUT TYPE=“button” NAME=“aa “  value=cindy onclick=haha()>  
  272. <INPUT TYPE=“button” NAME=“bb “ value=guoguo>  
  273. <INPUT TYPE=“button” NAME=“bb “ value=guoguo>  
  274.   
  275. 39.文字移动   
  276. <marquee scrollamount=3 onmouseover=this.stop(); onmouseout=this.start();>  
  277.   
  278. 40.双击网页自动跑   
  279. <SCRIPT LANGUAGE=“JavaScript”>  
  280. var currentpos,timer;    
  281. function initialize()    
  282. {    
  283.  timer=setInterval(“scrollwindow()”,1);   
  284. }    
  285. function sc()   
  286. {   
  287.  clearInterval(timer);   
  288. }   
  289. function scrollwindow()    
  290. {   
  291.  currentpos=document.body.scrollTop;   
  292.  window.scroll(0,++currentpos);   
  293.  if (currentpos != document.body.scrollTop)    
  294.   sc();   
  295. }    
  296. document.onmousedown=sc  
  297. document.ondblclick=initialize  
  298. </SCRIPT>//   
  299.   
  300. 41.后退   
  301. <INPUT TYPE=“button” onclick=window.history.back() value=back>  
  302.   
  303. 42.前进   
  304. <INPUT TYPE=“button” onclick=window.history.forward() value=forward>  
  305.   
  306. 43.刷新   
  307. <INPUT TYPE=“button” onclick=document.location.reload() value=reload>  
  308.   
  309. 44.转向指定网页   
  310. document.location=“http://ww”或者document.location.assign(“http://guoguo.com”)   
  311.   
  312. 45.在网页上显示实时时间   
  313. <SCRIPT LANGUAGE=“JavaScript”>  
  314. var clock_id;   
  315. window.onload=function()   
  316. {   
  317.  clock_id=setInterval(“document.form1.txtclock.value=(new Date);”,1000)   
  318. }   
  319. </SCRIPT>//   
  320.   
  321. 46.可以下载文件    
  322. document.location.href=“目标文件”//   
  323.   
  324. 47.连接数据库   
  325. import java.sql.*;   
  326. String myDBDriver=“sun.jdbc.odbc.JdbcOdbcDriver”;   
  327. Class.forName(myDBDriver);   
  328. Connection conn=DriverManager.getConnection(“jdbc:odbc:firm”,”username”,”password”);   
  329. Statement stmt=conn.createStatement();   
  330. ResultSet rs=stmt.executeQuery(sql);   
  331. rs.getString(“column1”);//   
  332.   
  333. 48.可以直接在页面“div”内写下所需内容   
  334. <INPUT TYPE=“button” onclick=“a1.innerHTML='<font color=red>*</font>'”>  
  335. <div id=a1></div>//   
  336.   
  337. 49.可以改变页面上的连接的格式,使其为双线   
  338. <style>  
  339. A:link {text-decoration: none; color:#0000FF; font-family: 宋体}   
  340. A:visited {text-decoration: none; color: #0000FF; font-family: 宋体}   
  341. A:hover {text-decoration: underline overline; color: FF0000}   
  342. </style>  
  343.   
  344. <style>  
  345. A:link {text-decoration: none; color:#0000FF; font-family: 宋体}   
  346. A:visited {text-decoration: none; color: #0000FF; font-family: 宋体}   
  347. A:hover {text-decoration: underline overline line-through; color: FF0000}   
  348. TH{FONT-SIZE: 9pt}   
  349. TD{FONT-SIZE: 9pt}   
  350. body {SCROLLBAR-FACE-COLOR: #A9D46D; SCROLLBAR-HIGHLIGHT-COLOR: #e7e7e7;SCROLLBAR-SHADOW-COLOR:#e7e7e7;    
  351.   
  352. SCROLLBAR-3DLIGHT-COLOR: #000000; LINE-HEIGHT: 15pt; SCROLLBAR-ARROW-COLOR: #ffffff;    
  353.   
  354. SCROLLBAR-TRACK-COLOR: #e7e7e7;}   
  355.   
  356. INPUT{BORDER-TOP-WIDTH: 1px; PADDING-RIGHT: 1px; PADDING-LEFT: 1px; BORDER-LEFT-WIDTH: 1px; FONT-SIZE:    
  357.   
  358. 9pt; BORDER-LEFT-COLOR: #cccccc;    
  359. BORDER-BOTTOM-WIDTH: 1px; BORDER-BOTTOM-COLOR: #cccccc; PADDING-BOTTOM: 1px; BORDER-TOP-COLOR: #cccccc;    
  360.   
  361. PADDING-TOP: 1px; HEIGHT: 18px; BORDER-RIGHT-WIDTH: 1px; BORDER-RIGHT-COLOR: #cccccc}   
  362. DIV,form ,OPTION,P,TD,BR{FONT-FAMILY: 宋体; FONT-SIZE: 9pt}    
  363. textarea, select {border-width: 1; border-color: #000000; background-color: #efefef; font-family: 宋体;    
  364.   
  365. font-size: 9pt; font-style: bold;}   
  366. .text { font-family: “宋体”; font-size: 9pt; color: #003300; border: #006600 solid; border-width: 1px 1px    
  367.   
  368. 1px 1px}   
  369. </style>完整的css   
  370.   
  371.   
  372. 50.新建frame   
  373. <a    
  374.   
  375. href=”javascript:newframe(‘http://www.163.net/help/a_little/index.html’,’http://www.163.net/help/a_little   
  376.   
  377. /a_13.html’)”><img alt=帮助 border=0 src=“http://bjpic.163.net/images/mail/button-help.gif”></a>  
  378.   
  379. 51.向文件中写内容   
  380. <%@ page import=“java.io.*” %>  
  381. <%   
  382.  String str = “print me”;   
  383.  //always give the path from root. This way it almost always works.   
  384.  String nameOfTextFile = “/usr/anil/imp.txt”;   
  385.  try   
  386.  {    
  387.   PrintWriter pw = new PrintWriter(new FileOutputStream(nameOfTextFile));   
  388.   pw.println(str);   
  389.   //clean up   
  390.   pw.close();   
  391.  }   
  392.  catch(IOException e)   
  393.  {   
  394.   out.println(e.getMessage());   
  395.  }   
  396. %>  
  397.   
  398. 52.先读文件再写文件   

Asp.Net的控件如何与Server交互

以前写asp的程序的时候,知道只有type设置为submit的按钮,才能触发表单提交数据给服务器端。
如:Asp.Net中的Button就是等于<input type=”submit”>.
但是现在Asp.Net的好多控件都可以任意的和服务器端交互,如:LinkButton.
这是怎么实现的呢?
难道是一种全新的方式吗?
其实,这只是微软的一种变通的方式。
我们先来看看客户端的代码是如何的.
我这里是一个带有LinkButton的页面,
其实LinkButton在客户端就等于html里的A.
我们来看看LinkButton为什么也能和服务器端交互 
当我们点击右键查看该页面的源代码时,看到:

<script type=”text/javascript”>
<!–
var theForm = document.forms[‘ctl00’];
if (!theForm) {
    theForm = document.ctl00;
}
function __doPostBack(eventTarget, eventArgument) {
    if (!theForm.onsubmit || (theForm.onsubmit() != false)) {
        theForm.__EVENTTARGET.value = eventTarget;
        theForm.__EVENTARGUMENT.value = eventArgument;
        theForm.submit();
    }
}
// –>
</script>

<a id=”simpleLinkButton1″ href=”javascript:__doPostBack(‘simpleLinkButton1’,”)”>Click Me</a>
<input type=”hidden” name=”__EVENTTARGET” id=”__EVENTTARGET” value=”” />
<input type=”hidden” name=”__EVENTARGUMENT” id=”__EVENTARGUMENT” value=”” />
从上面的代码中就可以看出simpleLinkButton1是一个链接,通过客户端代码来提交所在的表单。
而其中两个隐藏域,则用来交换数据的,就是把__doPostBack的两个参数值赋给这两个隐藏域。
这就是为什么LinkButton也具有提交数据的最直观的原因。

那么这上面的代码是怎么生成的呢?
我们看LinkButton的源代码就可以清楚地知道:
protected internal override void OnPreRender(EventArgs e)
{
      base.OnPreRender(e);
      if ((this.Page != null) && this.Enabled)
      {
            this.Page.RegisterPostBackScript();
            if ((this.CausesValidation && (this.Page.GetValidators(this.ValidationGroup).Count > 0)) || !string.IsNullOrEmpty(this.PostBackUrl))
            {
                  this.Page.RegisterWebFormsScript();
            }
      }
}

以上只是把自己在学习工作过程中的一些体会记录如此,防止自己忘记了。
也望和大家多多交流!

页面引入带汉字的js文件编码出错

以下只是本人经过简单测试得出的结论,不妥之处还请多多指正,欢迎讨论交流。

经常会遇到头疼的问题:页面中如果引入多个带有汉字的javascript文件时,可能会出现某些js文件不能被正常下载,出现编码解析错误的问题。

参考规则:

1.引入的js文件被载入时编码解析过程会依赖引入自己的那个宿主文件的编码解析格式

3.保持引入的js文件和宿主文件保存格式一致则不会发生编码解析混乱的问题

宿主文件:引入js文件的文件

A 宿主文件为动态页面时(如jsp、asp、.net等):

经过测试,貌似没有什么较好而且通用的解决办法,首先测试观察哪个js文件编码出错,然后找到没有出错的js文件,将出错的文件编码改成和没有出错的文件编码一致应该没有问题。

动态页面中<script charset=””>中charset好像不起作用

若还未解决,检查服务器端是否对客户端下载的文件格式进行了过滤处理,尝试去掉对js文件的格式转换。

B 宿主文件为静态html文件时

1.若宿主文件是utf-8格式,则在文档中添加编码指令,若还未解决,则转到2步

2.若引入了utf-8的js文件,则在<script charset=”utf-8″>中指明引入格式。若未解决,继续

3.将宿主文件的编码格式修改为ANSI格式。

修改文件编码格式方法:使用EditPlus或者记事本打开文件,然后另存为,选择编码格式后保存即可。

经典正则表达式

则表达式用于字符串处理,表单验证等场合,实用高效,但用到时总是不太把握,以致往往要上网查一番。我将一些常用的表达式收藏在这里,作备忘之用。本贴随时会更新。

匹配中文字符的正则表达式: [\u4e00-\u9fa5]

匹配双字节字符(包括汉字在内):[^\x00-\xff]

应用:计算字符串的长度(一个双字节字符长度计2,ASCII字符计1)

String.prototype.len=function(){return this.replace([^\x00-\xff]/g,”aa”).length;}

匹配空行的正则表达式:\n[\s| ]*\r

匹配HTML标记的正则表达式:/<(.*)>.*<\/\1>|<(.*) \/>/

匹配首尾空格的正则表达式:(^\s*)|(\s*$)

String.prototype.trim = function()
{
return this.replace(/(^\s*)|(\s*$)/g, “”);
}

利用正则表达式分解和转换IP地址:

下面是利用正则表达式匹配IP地址,并将IP地址转换成对应数值的javascript程序:

function IP2V(ip)
{
re=/(\d+)\.(\d+)\.(\d+)\.(\d+)/g //匹配IP地址的正则表达式
if(re.test(ip))
{
return RegExp.$1*Math.pow(255,3))+RegExp.$2*Math.pow(255,2))+RegExp.$3*255+RegExp.$4*1
}
else
{
throw new Error(“Not a valid IP address!”)
}
}

不过上面的程序如果不用正则表达式,而直接用split函数来分解可能更简单,程序如下:

var ip=”10.100.20.168″
ip=ip.split(“.”)
alert(“IP值是:”+(ip[0]*255*255*255+ip[1]*255*255+ip[2]*255+ip[3]*1))

匹配Email地址的正则表达式:\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*

匹配网址URL的正则表达式:http://([\w-]+\.)+[\w-]+(/[\w- ./ %&=]*) 

利用正则表达式去除字串中重复的字符的算法程序:[注:此程序不正确,原因见本贴回复]

var s=”abacabefgeeii”
var s1=s.replace(/(.).*\1/g,”$1″)
var re=new RegExp(“[“+s1+”]”,”g”)
var s2=s.replace(re,””)
alert(s1+s2) //结果为:abcefgi

我原来在CSDN上发贴寻求一个表达式来实现去除重复字符的方法,最终没有找到,这是我能想到的最简单的实现方法。思路是使用后向引用取出包括重复的字符,再以重复的字符建立第二个表达式,取到不重复的字符,两者串连。这个方法对于字符顺序有要求的字符串可能不适用。

得用正则表达式从URL地址中提取文件名的javascript程序,如下结果为page1

s=”http://www.9499.net/page1.htm”
s=s.replace(/(.*\/){0,}([^\.]+).*/ig,”$2″)
alert(s)

利用正则表达式限制网页表单里的文本框输入内容:

用正则表达式限制只能输入中文:onkeyup=”value=value.replace(/[^\u4E00-\u9FA5]/g,”)” onbeforepaste=”clipboardData.setData(‘text’,clipboardData.getData(‘text’).replace(/[^\u4E00-\u9FA5]/g,”))”

用正则表达式限制只能输入全角字符:onkeyup=”value=value.replace(/[^\uFF00-\uFFFF]/g,”)” onbeforepaste=”clipboardData.setData(‘text’,clipboardData.getData(‘text’).replace(/[^\uFF00-\uFFFF]/g,”))”

用正则表达式限制只能输入数字:onkeyup=”value=value.replace(/[^\d]/g,”) “onbeforepaste=”clipboardData.setData(‘text’,clipboardData.getData(‘text’).replace(/[^\d]/g,”))”

用正则表达式限制只能输入数字和英文:onkeyup=”value=value.replace(/[\W]/g,”) “onbeforepaste=”clipboardData.setData(‘text’,clipboardData.getData(‘text’).replace(/[^\d]/g,”))”

补充:
^\d+$  //匹配非负整数(正整数 + 0)
^[0-9]*[1-9][0-9]*$  //匹配正整数
^((-\d+)|(0+))$  //匹配非正整数(负整数 + 0)
^-[0-9]*[1-9][0-9]*$  //匹配负整数
^- \d+$    //匹配整数
^\d+(\.\d+) $  //匹配非负浮点数(正浮点数 + 0)
^(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*))$  //匹配正浮点数
^((-\d+(\.\d+) )|(0+(\.0+) ))$  //匹配非正浮点数(负浮点数 + 0)
^(-(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*)))$  //匹配负浮点数
^(- \d+)(\.\d+) $  //匹配浮点数
^[A-Za-z]+$  //匹配由26个英文字母组成的字符串
^[A-Z]+$  //匹配由26个英文字母的大写组成的字符串
^[a-z]+$  //匹配由26个英文字母的小写组成的字符串
^[A-Za-z0-9]+$  //匹配由数字和26个英文字母组成的字符串
^\w+$  //匹配由数字、26个英文字母或者下划线组成的字符串
^[\w-]+(\.[\w-]+)*@[\w-]+(\.[\w-]+)+$    //匹配email地址
^[a-zA-z]+://匹配(\w+(-\w+)*)(\.(\w+(-\w+)*))*(\ \S*) $  //匹配url

利用正则表达式去除字串中重复的字符的算法程序:

var s=”abacabefgeeii”
var s1=s.replace(/(.).*\1/g,”$1″)
var re=new RegExp(“[“+s1+”]”,”g”)
var s2=s.replace(re,””)
alert(s1+s2) //结果为:abcefgi
===============================
如果var s = “abacabefggeeii”
结果就不对了,结果为:abeicfgg
正则表达式的能力有限

1.确认有效电子邮件格式
下面的代码示例使用静态 Regex.IsMatch 方法验证一个字符串是否为有效电子邮件格式。如果字符串包含一个有效的电子邮件地址,则 IsValidEmail 方法返回 true,否则返回 false,但不采取其他任何操作。您可以使用 IsValidEmail,在应用程序将地址存储在数据库中或显示在 ASP.NET 页中之前,筛选出包含无效字符的电子邮件地址。

[C#]
bool IsValidEmail(string strIn)
{
// Return true if strIn is in valid e-mail format.
return Regex.IsMatch(strIn, @”^([\w-\.]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([\w-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\] )$”);
}

2.清理输入字符串
下面的代码示例使用静态 Regex.Replace 方法从字符串中抽出无效字符。您可以使用这里定义的 CleanInput 方法,清除掉在接受用户输入的窗体的文本字段中输入的可能有害的字符。CleanInput 在清除掉除 @、-(连字符)和 .(句点)以外的所有非字母数字字符后返回一个字符串。

[C#]
String CleanInput(string strIn)
{
// Replace invalid characters with empty strings.
return Regex.Replace(strIn, @”[^\w\.@-]”, “”);
}

3.更改日期格式
以下代码示例使用 Regex.Replace 方法来用 dd-mm-yy 的日期形式代替 mm/dd/yy 的日期形式。

[C#]
String MDYToDMY(String input)
{
return Regex.Replace(input,
“\\b( <month>\\d{1,2})/( <day>\\d{1,2})/( <year>\\d{2,4})\\b”,
“${day}-${month}-${year}”);
}
Regex 替换模式
本示例说明如何在 Regex.Replace 的替换模式中使用命名的反向引用。其中,替换表达式 ${day} 插入由 ( <day>…) 组捕获的子字符串。

有几种静态函数使您可以在使用正则表达式操作时无需创建显式正则表达式对象,而 Regex.Replace 函数正是其中之一。如果您不想保留编译的正则表达式,这将给您带来方便

4.提取 URL 信息
以下代码示例使用 Match.Result 来从 URL 提取协议和端口号。例如,“http://www.contoso.com:8080/letters/readme.html”将返回“http:8080”。

[Visual Basic]
Function Extension(url As String) As String
Dim r As New Regex(“^( <proto>\w+)://[^/]+ ( <port>:\d+) /”, _
RegexOptions.Compiled)
Return r.Match(url).Result(“${proto}${port}”)
End Function
[C#]
String Extension(String url)
{
Regex r = new Regex(@”^( <proto>\w+)://[^/]+ ( <port>:\d+) /”,
RegexOptions.Compiled);
return r.Match(url).Result(“${proto}${port}”);
}

转贴:VS2008下载点

<iframe align=”top” marginwidth=”0″ marginheight=”0″ src=”http://www.zealware.com/csdnblog01.html” frameborder=”0″ width=”728″ scrolling=”no” height=”90″></iframe>

ASP.NET AJAX当中有一个非常神奇好用的控件 UpdatePanel,这个控件可以帮助我们轻易的达成非同步Postback的功能,让我们的.aspx页面上可以直接加入AJAX技术。

时常有读者询问笔者一个问题,在UpdatePabel内所触发的事件当中,是否可以动态的更新布置在UpdatePanel “外的” 控件 

一般来说,我们使用UpdatePanel时可会这样布置:

平常时候我们会把 “需要以非同步方式动态更新” 的控件放在UpdatePanel里,这时要更新画面中的TextBox1很简单,只需要编写代码:

Protected Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs)
 me.TextBox1.Text= ” … “
End Sub

在UpdatePanel当中的Button1所触发的Click事件,会以非同步Postback的方式被执行,因此当后端事件Click被执行到,即可更新TextBox1中的值,且页面不需要换页(Submit)。

但是,您用UpdatePanel久了就会发现,我们不可能把所有的控件都放在UpdatePanel当中,如果需要在非同步Postback当中,动态更新UpdatePanel外的控件内容,该如何作呢  例如:

当我们想点击UpdatePanel当中的Button之后,更新位于UpdatePanel外的控件的内容,则需要通过动态Render JavaScript的小技巧:

Protected Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs)
 Dim js As String
 js = “$get(‘TextBox1′).value=’…’;”
 ScriptManager.RegisterStartupScript(Me, GetType(String), “”, js, True)
End Sub

这样就可以通过动态产生的JavaScript,来更新前端页面上布置于UpdatePanel外的控件。
其实这个小技巧相当好用,我们也可以用于在非同步Postback过程当中,动态的产生alert窗口,例如:

Protected Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs)
 Dim js As String
 js = “alert(‘非同步postback过程当中产生的alert窗口…’);”
 ScriptManager.RegisterStartupScript(Me, GetType(String), “”, js, True)
End Sub

希望这个小技巧对各位使用AJAX技术时有所帮助…

Trackback: http://tb.blog.csdn.net/TrackBack.aspx PostId=1870893