顯示具有 JavaScript 標籤的文章。 顯示所有文章
顯示具有 JavaScript 標籤的文章。 顯示所有文章

2014/10/02

[Regex]加入數字的千分位(thousands separator)

因為Javascript的Regex沒有lookbehind, 所以一般在處理為數字加上千分位的作法會受到一些限制.
以下先說明數字加上千分位的規則:
  1. 數字的整數部分每3位數插入一個逗號(,), ex: 123456 –> 123,456
  2. 小數點後不加入千分位, ex: 123456.1234 –> 123,456.1234

2014/02/18

[Regex]Match Overlaping Pattern

情境: 將字串 1 < 20 < 5 < 3 分解成
1 < 20
20 < 5
5 < 3
當利用Regex做字串比對時, 會發現比對是一連串的字串消化行為.
所以若試著使用 (\d+\s*[<>=]+\s*\d+) 這樣的Pattern作比對時, 會發現只能比對到如下的結果:
1 < 20
5 < 3

2012/03/13

[JavaScript] 以固定長度的方式為字串加入分隔符號

例: 以 CD-Key 的格式而言, 大致像 12345-67890-ABCDE-FGHIJ
但有時會為了方便使用者輸入, 會允許使用者輸入無分隔符號的字串, 此時就會想要簡單地依長度來分割字串, 並加入分隔符號.

2010/10/27

[jQuery] 在 jQuery 中處理 single/double quote

在透過 jQuery 設定標籤中的內容時, 有時會遇到內容中已經有單引號(') 或雙引號(") 的問題.
例如: 從資料庫抓出了如下的一段 HTML 碼
<b><font color="#FF0000">This is a test</font></b>
接著透過 jQuery 的 .html() 將該資料設定至指定的一個 <div> 內:
<div id="divMsg"></div>
<script type="text/javascript">
$("#divMsg").html("${msg}");
</script>
此時, 因為原本的 msg 變數中已經有雙引號存在, 所以若實際檢視輸出的 HTML 原始碼, 就會是以下的內容:

2010/09/14

[JavaScript] 在<select>中替換<option>的方式(KB 276228)

在網頁的設計中, 常會用到連動式的下拉式選單, 或是因為某個事件, 而置換掉下拉式選單中的選項.
但在 Microsoft 官網有提到一個問題: http://support.microsoft.com/kb/276228/zh-tw 
也就是, 不要用 innerHTML 去置換 <select> 中的 <option>.

2010/07/30

[ASP.Net] Regular Expression 的密碼驗證

其實用 Regular Expression 做密碼複雜度的驗證已不是什麼創舉, 用 google 輸入關鍵字 "regular expression password" 就會有一堆參考.
由於 (?=) 和 (?!) 的用法之前有在 這篇文章 大略提過, 所以此篇就當做是為了避免自己忘掉, 且做為衍生應用寫的吧.

2010/07/28

[c#] Regular Expression 抓取/取代特定資料的說明

在網路上常見到一些想用 Regular Expression 取資料的問題.
有些解答看起來很複雜, 實際上只要一個一個 pattern 拆解, 就不難發現道理其實很簡單.
以下的例子將視情況進行補充:

[C#] 利用 Regex 查詢 Html/Xml 標籤中的屬性值

作用: 取得 HTML 或 XML 內容中, 某個標籤下所指定的屬性值.
輸入參數:
  • strHtml(string): HTML 或 XML 的內容.
  • strTagName(string): 標籤名.
  • strAttributeName(string): 屬性名.

[ASP.Net] 利用 RegularExpressionValidator 排除特定字串

在常被用來檢查欄位的驗證控制項中, RegularExpressionValidator 算是最常被用到的.
不過還是不要為了用 RegularExpressionValidator 而用, 以免為了兜出想要的 ValidationExpression 而傷透腦筋. 舉例來說, 設計一個只允許數字的輸入欄, 我們可以用以下兩種做法:

[ASP.Net] 廣告輪播的控制項 (without AJAX)

由於最近要在網頁上加入一個廣告輪播的功能, 且 AJAX Toolkit 的 SlideShowExtender 又因為 OutputCache, 未能正常地產生輪播效果, 所以我使用 JavaScript 搭配 UserControl 做了以下的範例.

2010/07/27

[ASP.Net] 驗證上傳檔案的副檔名

利用 RegularExpressionValidator 進行檢查:

  1. 僅限上傳PDF檔案(pdf):
    ValidationExpression="^.+\.((p|P)(d|D)(f|F))$"
  2. 僅限上傳WORD檔案(doc,docx):
    ValidationExpression="^.+\.((d|D)(o|O)(c|C))(x|X)?$"
  3. 僅限上傳圖檔(gif,jpg,jpeg,png):
    ValidationExpression =
    "^.+\.(((g|G)(i|I)(f|F))|((j|J)(p|P)(e|E)?(g|G))|((p|P)(n|N)(g|G)))$"

因為 RegularExpressionValidator 控制項, 沒有設定 Regular Expression case-insensitive 的地方, 所以只好用 (e|E) 的方式進行.
雖然看起來有點醜, 不過可以用就好.