2012年6月14日 星期四

驗證控制項 RegularExpressionValidator


驗證控制項 RegularExpressionValidator 基本的特殊定義字元●[]  用來設定可以接受的字元
  [abcde]表示只接受abcde五個小寫英文字母
  [0-9]表示只接受10個阿拉伯數字
  [a-zA-Z]表示只接受大小寫的英文字母
  [^0-9]表示除了0-9以外的字視都接受(^表示差集合)
●{}  用來設定前面字元重複次數
  [0-9]{5}表示一定要鍵入5個數字字元
  [A-Z]{2,4}表示最少2個、最多4個字元且為英文大寫
  [^abc]{1,}表示最少要輸入1個字元以上,每個字元不可以是a或b或c
●.  表示可接受任意字元
  f.x  代表任何f開頭,x結尾, 共3個  T...y 代表T開頭,y結尾, 共5個字的字串
  T.{3}y 同上面的 "T...y"
●^為差集合,不包含的意思
  [^0-9a-z]..Z 代表搜尋所有前面不是數字和小寫英文字, 中間夾著兩個任意字元 , 最後接著大寫Z的字串
●|  表示邏輯運算子的or
●()  用來區隔規則運算式,以方便閱讀
●\ 上述的字元都是規則運算式中的定義符號,如果要輸入的字元必須含有這些符號,就必須在這些符號前加上倒斜線\
●計算數量用的中繼字元
?  代表前面的項目重複0次或1次
*  代表前面的項目重複0~無限次
+ 代表前面的項目重複1~無限次
● ^ 和 $ 搭配運用 , 表示符合某字開始, 某字結束的字串
一些常用的範圍,我們可以使用預先定義的字元類別:
\d等於 [0-9] 數字
\D等於 [^0-9] 非數字
\s等於 [ \t\n\x0B\f\r] 空白字元
\S等於 [^ \t\n\x0B\f\r] 非空白字元
\w等於 [a-zA-Z_0-9] 數字或是英文字
\W等於 [^a-zA-Z_0-9] 非數字與英文字






一些常用的驗證項目如下
電話號碼
[0-9]{2}-[0-9]{7}
符合如 02-3790850 的電話號碼,但若是電話號碼如082-263409就不符合了
email
\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*
表示1個以上的數字或是英文字
身份證
([A-Z]|[a-z])\d{9}
第一個字元可以是大小寫的英文,後面接9字元的數字
郵遞區號
\d{3}((-)?\d{2})?
前3字元為數字,-這個符號可有可無,後面再接2字元的數字(也是可有可無) 註:可有可無的符號用?,而要包含哪些字串則用()來括起
電話或手機 
((\d{10})|(((\(\d{2}\))|(\d{2}-))?\d{4}(-)?\d{3}(\d)?))
可以是10字元的數字(如0912123455);也可以是包含括號括住2字元的數字(如(08),或再加個-符號(如08-),或是…好複雜…我也亂了
網址
http(s)?://([\w-]+\.)+[\w-]+(/[\w- ./?%&=]*)?
前面一定要http,s可有可無,://都是字串,後面的
([\w-]+\.)+就是表示([\w-]+\.)這串可不停重複,而([\w-]+\.)這串就是說可以是一堆的英數字元並加上.(如abc.BCA.hht.qd.)





















心得
因為區域性的不同,所以驗證方法各異,依我觀察,現在許多網站多只驗證帳號和密碼、mail(因為網站的國際化),若是地址、電話…那真的是要花很大的工夫
再者,驗證的方法也不一定要用這種,複雜性比較高的如驗證網址也可用高級的regex方法來做,而上述的驗證字串也通用於搜尋字串
(ps驗證字符語言不同,字符或有差異…如有錯誤請大家幫忙更正,也提供大陸那邊的文章 給大家參考)

2012年6月8日 星期五

解決Java alert 跳轉之後字體變大的問題


 

JavaScript—弹出警告框后页面字体不变大的方法

分类: JavaScript 264人阅读 评论(0) 收藏 举报
页面中经常用到的操作:弹出警告框。很多情况下我们都是用
Response.Write("<script language=Javascript>alert('保存成功!');location.href='ZhouYePlanMain.aspx';</script>");
方法写脚本弹出来,但是会出现的问题是,点“确定”后页面的字体不受样式表的控制,变大了!为了解决这一问题,我将弹出对话框这个功能写成一个专门的函数,以后在页面中直接调用这个函数就行了!
public static void WebMessageBox(System.Web.UI.Page page, string values )//只弹出警告框{page.ClientScript.RegisterStartupScript(page.GetType(), "", "<script language=javascript>alert('" + values + "')</script>");}
public static void WebMessageBox(System.Web.UI.Page page, string values,String linkurl)//弹出警告框后跳转页面 
{
   page.ClientScript.RegisterStartupScript(page.GetType(), "", "<script language=javascript>alert('" + values + "');location.href='" + linkurl + "';</script>"); 
}

注:如果页面中有控件updatePanel,则上面的弹出警告框是谈不出来的,这时可以用下面的方法弹出警告框:
(1)弹出警告框:ScriptManager.RegisterStartupScript(this, this.GetType(), "s1", "alert('您将取消页面的保存!')", true);
(2)跳转到新页面:ScriptManager.RegisterStartupScript(this, this.GetType(), "", "window.open('RoleAdmin.aspx')", true);