VBS正則表達式函數
主要用在asp中效果明顯
1、表單驗證功能 復制代碼代碼如下:
Function Validate(strng,patrn)
Dim regEx
Set regEx = New RegExp
regEx.Pattern = patrn
regEx.IgnoreCase = True
regEx.Global = True
Validate = regEx.test(strng)
Set regEx = Nothing
End Function
使用例子
If Validate(Fdr.Name,"F/d{4}_P/d{4}")=True Then
... ...
End If
- <input name=vevb value="13003523068">
- <button onclick=checkit(vevb.value)>測試</button>
- <script language=vbscript>
- function check(str)
- dim re
- set re=new regexp
- re.global=true
- re.ignorecase=true
- re.pattern="1[3|5]/d{9}"
- check=re.test(str)
- set re=nothing
- end function
-
- sub checkit(str)
- if check(str)=true then
- msgbox "是手機"
- else
- msgbox "不是手機"
- end if
- end sub
- </script>
2、替換功能 復制代碼代碼如下:
'==========================
'用正則表達式實現替換
'==========================
function replaceregex(patern,str,tagstr)
dim regex,matches
set regex=new regExp
regex.pattern=patern
regex.IgnoreCase=true
regex.global=true
matches=regex.replace(str,tagstr)
replaceregex=matches
end function
3、ubb功能 以下是 作者:LCX的內容
以前一直沒有好好的學過,這次整理一下。
正則中/d+就是代表一個或多個數字,用這個做例子。
RegExp就是建立正則的對像。如Set regEx = New RegExp。regEx.Pattern 就是來設置正則的模式的,如
regEx.Pattern ="/d+"。regEx.IgnoreCase = True ' 設置是否區分大小寫。regEx.Global = True ' 設置全程可用性。
RegExp對像有3種方法,分別是execute、test、replace。
test方法是對指定的字符串執行一個正則表達式搜索,并返回一個 Boolean 值指示是否找到匹配的模式。RegExp.Global屬性對Test方法沒有影響。如果找到了匹配的模式,Test方法返回True;否則返回False。
例子:
復制代碼代碼如下:
Function RegExpTest(patrn, strng)
Dim regEx, retVal ' 建立變量。
Set regEx = New RegExp ' 建立正則表達式。
regEx.Pattern = patrn ' 設置模式。
regEx.IgnoreCase = False ' 設置是否區分大小寫。
retVal = regEx.Test(strng) ' 執行搜索測試。
If retVal Then
RegExpTest = "找到一個或多個匹配。"
Else
RegExpTest = "未找到匹配。"
End If
End Function
MsgBox(RegExpTest("/d+", "abcd1234"))
MsgBox(RegExpTest("/d+", "abcd"))
Replace 方法替換在正則表達式查找中找到的文本,例子:
復制代碼代碼如下:
Function ReplaceTest(patrn, replStr)
Dim regEx, str1 ' 建立變量。
str1 = "dog 123."
Set regEx = New RegExp ' 建立正則表達式。
regEx.Pattern = patrn ' 設置模式。
regEx.IgnoreCase = True ' 設置是否區分大小寫。
ReplaceTest = regEx.Replace(str1, replStr) ' 作替換。
End Function
MsgBox(ReplaceTest("/d+", "cat")) ‘將字符串中的123替換為cat
Execute 方法,則是對指定的字符串執行正則表達式搜索。這里又涉及到Match對像和Matches 集合。Matches 集合就是match的對像集合。Matches 集合中包含若干獨立的 Match 對象,只能使用 RegExp 對象的 Execute 方法來創建之。例子:
復制代碼代碼如下:
Function RegExpTest(patrn, strng)
Dim regEx, Match, Matches ' 建立變量。
Set regEx = New RegExp ' 建立正則表達式。
regEx.Pattern = patrn ' 設置模式。
regEx.IgnoreCase = True ' 設置是否區分大小寫。
regEx.Global = True ' 設置全程可用性。
Set Matches = regEx.Execute(strng) ' 執行搜索。
For Each Match in Matches ' 遍歷 Matches 集合。
RetStr = RetStr & Match.FirstIndex & "。匹配的長度為"&" "
RetStr = RetStr & Match.Length &" "
RetStr = RetStr & Matches(0) &" " '值為123
RetStr = RetStr & Matches(1)&" " '值為44
RetStr = RetStr & Match.value&" " '值為123和44的數組
RetStr = RetStr & vbCRLF
Next
RegExpTest = RetStr
End Function
MsgBox(RegExpTest("/d+", "123a44"))