正则表达式'必须长于{n}并且必须包含至少2位数整数'

时间:2011-06-29 12:25:20

标签: asp.net regex validation

任何人都可以给我一个must be loger than {n} and must include at least 2 digit integer

正则表达式的例子

我现在有以下内容,但它只验证了长度;

<asp:RegularExpressionValidator ID="myTxtVal" 
    runat="server" ControlToValidate="myTxt" 
    ErrorMessage="Input Is Too Short" ValidationExpression=".{15}.*" />

3 个答案:

答案 0 :(得分:1)

<asp:RegularExpressionValidator ID="myTxtVal"
  runat="server" ControlToValidate="myTxt"      
  ErrorMessage="Input Is Too Short" ValidationExpression="^(?=.*?\d{2}).{15}" />

编辑:固定为2位整数。与'有2位数'不一样...... ;-) 它使用前瞻来验证一行中至少有两个数字,然后.{15}部分匹配15个字符。它不需要匹配字符串的其余部分,因此我删除了.*

答案 1 :(得分:1)

那样的东西?

^(?=.*\d{2}).{4,}$

here at Regexr

第一个构造(?=.*\d{2})是向前看,它会检查字符串中的某个位置是否连续2位数。 (我现在不确定这是否是你需要的)

第二部分检查.{4,}检查字符串的长度至少为4个字符。

^将模式锚定到字符串的开头

$将模式锚定到字符串的末尾

答案 2 :(得分:0)

另一种方法,纯粹是为了您的兴趣:

/^(.|()\d\d){N-1}\2/

这适用于正则表达式,如果其引用的第N个组无法匹配,则\N的反向引用无法匹配。如果第二个组匹配,表达式只能成功匹配,而这只能在\ d \ d匹配时才会发生。例如,N = 15:

/^(.|()\d\d){14}\2/