正则表达式的正向预查
匹配一段字符串比如123S456E789中的456,通常写法就是S\d+E,这样取到以后还得再去除前面的S和后面的E。使用正向预查,可以写成(?<=S)\w+(?=E),这样可以直接就匹配到了456。
//正则表达式匹配 string result = Regex.Match("123S456E789", @"(?<=S)\w+(?=E)").Value;
posted @ 2009-08-17 08:53 Lionheart Zhang 阅读(133) 评论(0) 编辑
匹配一段字符串比如123S456E789中的456,通常写法就是S\d+E,这样取到以后还得再去除前面的S和后面的E。使用正向预查,可以写成(?<=S)\w+(?=E),这样可以直接就匹配到了456。
//正则表达式匹配 string result = Regex.Match("123S456E789", @"(?<=S)\w+(?=E)").Value;
posted @ 2009-08-17 08:53 Lionheart Zhang 阅读(133) 评论(0) 编辑
//在页面顶部添加脚本 if (!Page.ClientScript.IsClientScriptBlockRegistered("myscriptKey"))//判断是否已经存在相同//键值的ScriptBlock { string myScript = @"function AlertHello(){alert('hello xuanhun!!');}";//脚本内容 Page.ClientScript.RegisterClientScriptBlock(this.GetType(), "myscriptKey", myScript, true); } //在页面底部添加脚本 if (!Page.ClientScript.IsStartupScriptRegistered("footscriptkey")) { string CallScript = @"AlertHello();"; Page.ClientScript.RegisterStartupScript(this.GetType(), "footscriptKey", CallScript, true); } // 添加对js文件的引用 if (!Page.ClientScript.IsClientScriptIncludeRegistered("incluedeKey")) { string IncludeScript = @"/js/ShowHello.js"; Page.ClientScript.RegisterClientScriptInclude("includeKey", IncludeScript); }
posted @ 2009-08-17 08:40 Lionheart Zhang 阅读(45) 评论(0) 编辑
<a href="#" onclick="window.opener=null;window.open('','_self');window.close();">不确认关闭 </a>
posted @ 2009-08-17 08:37 Lionheart Zhang 阅读(181) 评论(1) 编辑
主要就是这一句:.Grid th和.Grid td,将会给class="Grid"的table中的th和td标签应用样式,而GridView生成的HTML代码是Table,这样就解决了GridView的边框问题。
GridView添加CssClass="Grid"属性,样式表如下:
<style type="text/css"> .Grid { border-collapse: collapse; border: solid 1px #93c2f1; width: 98%; font-size: 10pt; } .Grid td { border-collapse: collapse; border: solid 1px #93c2f1; font-size: 10pt; } .Grid th { border-collapse: collapse; border: solid 1px #93c2f1; font-size: 10pt; background-color: #e4f6ff; } </style>
posted @ 2009-08-17 08:32 Lionheart Zhang 阅读(1370) 评论(0) 编辑
火狐浏览器(FF)不支持普通的象IE那样的加入收藏夹和设为首页,于是就找了关于FF的方法。后来测试了下,可以用了。。其代码如下:
<script type="text/javascript"> function AddFavorite(sURL, sTitle) { try { window.external.addFavorite(sURL, sTitle); } catch (e) { try { window.sidebar.addPanel(sTitle, sURL, ""); } catch (e) { alert("加入收藏失败,请使用Ctrl+D进行添加"); } } } function SetHome(obj, vrl) { try { obj.style.behavior = 'url(#default#homepage)'; obj.setHomePage(vrl); } catch (e) { if (window.netscape) { try { netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect"); } catch (e) { alert("此操作被浏览器拒绝!\n请在浏览器地址栏输入“about:config”并回车\n然后将 [signed.applets.codebase_principal_support]的值设置为'true',双击即可。"); } var prefs = Components.classes['@mozilla.org/preferences-service;1'].getService(Components.interfaces.nsIPrefBranch); prefs.setCharPref('browser.startup.homepage', vrl); } } } </script> <a onclick="AddFavorite(window.location,document.title)">加入收藏</a> <a onclick="SetHome(this,window.location)">设为首页</a>
posted @ 2009-08-17 08:26 Lionheart Zhang 阅读(253) 评论(0) 编辑
追加HTML内容,我在做多文件上传的时候,用到了动态添加上传控件,但是发现一个问题,就是添加新的控件的时候,之前添加的控件的值会变空,我分析了一下原因,是因为我追加控件的时候是用的innerHTML+="内容"的,这样等于把div的控件直接重写了,所以控件会变空。
我找了下资料,知道了insertAdjacentHTML这个方法,用这个方法追加内容,不会改变原有控件的值,但是这个方法FF不使用。于是我继续找,在 http://www.cnitblog.com/yemoo/archive/2007/10/11/34711.html看到了兼容IE和FF的方法,经过试验,确实可以,但是方法太复杂了。这时,从朋友那里得到了一段JS:
function addFile() { var div1 = document.getElementById('divFiles'); input1 = document.createElement("INPUT"); input1.setAttribute("type", "file"); input1.setAttribute("name", "File"); div1.appendChild(input1); div1.appendChild(document.createElement("br")); }
这是用DOM实现的,IE/FF都支持,要比之前的从EXTJS中提取的要精简的多。
PS:前一个方法也写出来
function insertHtml(where, el, html) { where = where.toLowerCase(); if (el.insertAdjacentHTML) { switch (where) { case "beforebegin": el.insertAdjacentHTML('BeforeBegin', html); return el.previousSibling; case "afterbegin": el.insertAdjacentHTML('AfterBegin', html); return el.firstChild; case "beforeend": el.insertAdjacentHTML('BeforeEnd', html); return el.lastChild; case "afterend": el.insertAdjacentHTML('AfterEnd', html); return el.nextSibling; } throw 'Illegal insertion point -> "' + where + '"'; } var range = el.ownerDocument.createRange(); var frag; switch (where) { case "beforebegin": range.setStartBefore(el); frag = range.createContextualFragment(html); el.parentNode.insertBefore(frag, el); return el.previousSibling; case "afterbegin": if (el.firstChild) { range.setStartBefore(el.firstChild); frag = range.createContextualFragment(html); el.insertBefore(frag, el.firstChild); return el.firstChild; } else { el.innerHTML = html; return el.firstChild; } case "beforeend": if (el.lastChild) { range.setStartAfter(el.lastChild); frag = range.createContextualFragment(html); el.appendChild(frag); return el.lastChild; } else { el.innerHTML = html; return el.lastChild; } case "afterend": range.setStartAfter(el); frag = range.createContextualFragment(html); el.parentNode.insertBefore(frag, el.nextSibling); return el.nextSibling; } throw 'Illegal insertion point -> "' + where + '"'; }
posted @ 2009-08-17 08:21 Lionheart Zhang 阅读(141) 评论(2) 编辑