2011-11-24 37 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}))$