经典ASP正则表达式

时间:2011-11-24 17:48:58

标签: regex validation asp-classic user-input

我正在尝试验证来自电子邮件激活链接的查询字符串,用Classic 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个字母数字字符,无论如何。

2 个答案:

答案 0 :(得分: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}$"

^$在模式之前或之后禁止任何内容。

答案 1 :(得分:1)

请尝试使用以下表达式:

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