2011-11-24 36 views
2

我想驗證來自經典ASP編寫的電子郵件激活鏈接的查詢字符串。經典ASP正則表達式

查詢字符串輸入包含數字,字母和2個正斜槓。像這樣:G3hEus87YK/6738/HE347sxThH我需要驗證它,檢查只使用數字,字母和斜線。

斜線之間的數字可能是1-9位數字,在這裏我用4作爲例子,但斜線前面和10後面總是有10個字母數字字符。

到目前爲止,我已經完成了這項工作,它將運行檢查,但我不確定使用哪種模式!

Function validateToken(token) 
    Set regEx = New RegExp 
    regEx.IgnoreCase = True 
    regEx.Pattern = "???????????" 
    validateToken = regEx.Test(Trim(Request.QueryString("token"))) 
End Function 

我對數字和字母嘗試只會是,[A-z][0-9],但找2個斜線讓我困惑。我怎樣才能找到斜線呢?

我想,如果我寫在純英文的模式,它會讀取:

  • 10個字母數字字符,任何情況下。
  • 斜槓
  • 號,1-9個數字長
  • 正斜槓
  • 10個字母數字字符,任何情況下。

回答

1

「有斜槓和10之前始終爲10個字母數字字符後」

十個字母數字字符是[a-z\d]{10},假設IgnoreCase啓用。

「中斜線之間的數字可能是1-9位數」

這將是\d{1,9},所以最終的模式很簡單:

regEx.Pattern = "^[a-z\d]{10}/\d{1,9}/[a-z\d]{10}$" 

^$在模式之前或之後不允許任何內容。

+0

「^ [AZ \ d] {10}/\ d {1,9}/[AZ \ d] {10} $」 這種模式不會允許任何大寫字母,所以請考慮它,謝謝 –

+0

@ Md.EliasHossain這是無稽之談。再次閱讀我的答案,並看看他的代碼。 – Tomalak

+0

哦!是的,我明白你認爲IgnoreCase已啓用,我非常抱歉,請原諒我,謝謝你寶貴的時間。 –

1

請下面表達式嘗試:

^(([A-z\d]{10})/(\d{1,9})/([A-z\d]{10}))$