標籤:exit for ram iss log 運行 str fonts font
1、概述
在做機房收費系統的時候,差點兒全部的視窗上都存在著文字框或者組合框,當使用者進行操作的時候。首先要推斷是否為空白,然後再對各種屬性進行推斷,比方;卡號、學號、金額等僅僅能輸入數字,有些資訊僅僅能輸入字母,或者將一些資訊的輸入設為僅僅能輸入數字和字母。舉個範例。我們注冊郵箱的時候。就會有一些特定字元的設定:
以下是163郵箱注冊的頁面
在我們做機房收費系統時。假設用常規的方法,直接用ASCII碼進行設定的話,就感覺有點複雜,如今我們一起來認識認識程式猿必備的七種技能之中的一個的“正則表達式”。
2、什麼是正則表達式?
首先看一張漫畫:
正則表達式就是用事先定義好的一些特定字元、及這些特定字元的組合,組成一個“規則字串”,這個“規則字串”用來表達對字串的一種過濾邏輯。
舉個範例:僅僅能輸入數字:“^[0-9]*$”。
僅僅能輸入漢字:“^[\u4e00-\u9fa5]{0,}$”。
僅僅能輸入由26個英文字母組成的字串:“^[A-Za-z]+$”。
3、怎麼使用正則表達式?
以下就一起來看看怎麼使用它。
咱們以加入新使用者的視窗為例:
Public Const C_REGULAR_LenNum = "^[A-Za-z0-9]+$" ‘僅僅能輸入由數字和26個英文字母組成的字元 Public Const C_REGULAR_NumLimit = "^\\d{6,16}$" ‘僅僅能輸入6至16位的數字。
‘‘‘ <summary> ‘‘‘ 檢測輸入字串是否匹配正則表達式項 ‘‘‘ </summary> ‘‘‘ <param name="strPattern">正則表達式項</param> ‘‘‘ <param name="TextReg">輸入字串</param> ‘‘‘ <returns>返回結果是否匹配</returns> ‘‘‘ <remarks><span style="font-family:KaiTi_GB2312;">2014年8月28日16:02:20</span></remarks> Public Function funCheckRegular(ByVal strPattern As String, TextReg As String) Return Regex.IsMatch(TextReg, strPattern) End Function ‘‘‘ <summary> ‘‘‘ 詳細啟動並執行推斷函數,推斷是否輸入數字 ‘‘‘ </summary> ‘‘‘ <param name="arrayControl">結構體數組</param> ‘‘‘ <returns>True則表示匹配,false則不匹配</returns> ‘‘‘ <remarks>2014-07-09 10:30:24</remarks> Public Function CheckRegular(ByVal arrayControl() As Term, ByVal strPattern As String, Warning As String) As Boolean Dim termControl As Term ‘聲明一個Term類型變數termControl ‘遍曆結構體數組中的全部元素。假設控制項文本輸入不合法。則給出對應傳回值 For Each termControl In arrayControl ‘遍曆結構體數組中全部元素 If TypeOf termControl.controlSub Is TextBox Then ‘推斷控制項是否為文字框 If termControl.controlSub.Text.Trim <> "" Then ‘推斷文字框內容是否為空白。不為空白往下運行 If funCheckRegular(strPattern, termControl.controlSub.Text) = False Then MessageBox.Show(termControl.strText + "欄 - -!" + Warning, "友情提示", MessageBoxButtons.OK, MessageBoxIcon.Information) termControl.controlSub.Focus() ‘為空白控制項得到焦點 Return False Exit Function End If End If End If Next Return True End Function
以下的代碼是在介面層(UI)怎樣調用:
Public Sub RdimStrNum() ReDim Preserve arrayControl(0) ‘重定義數組維數 ‘初始化數組 arrayControl(0) = New Term(txtUserID, "username") End Sub Public Sub RdimNum() ReDim Preserve arrayControl(1) ‘重定義數組維數 ‘初始化數組 arrayControl(0) = New Term(txtUserPWD, "password") arrayControl(1) = New Term(txtConfirm, "確認password") End Sub
‘推斷使用者輸入是否合法(數字和字母) Call RdimStrNum() Dim strPattern = C_REGULAR_LenNum ‘正則表達式 Dim Warning As String = "僅僅能輸入由數字和26個英文字母組成的字元" If CheckRegular(arrayControl, strPattern, Warning) = False Then Exit Sub End If ‘推斷使用者輸入是否合法(數字) Call RdimNum() Dim pattern = C_REGULAR_NumLimit ‘正則表達式 Dim Warn As String = "請輸入6至16位元字" If CheckRegular(arrayControl, pattern, Warn) = False Then Exit Sub End If
3、結束語
在程式猿日常工作中。資料處理佔領了相當的比重。而全部的資料之中文本又佔領了相當的比重。文本可以被人理解、具有良好的透明性,利於系統開發、測試和維護等就必須要有一定規律遵循一種規則。而正則表達式正是我們所須要的,它提供給我們強大的字串處理的能力。
轉載請註明出處:http://blog.csdn.net/zlts000/article/details/38021335
限制字串輸入——正則表達式(VB.NET)