Ext.net C# testfiled 正则表达式验证
Ext.net C# testfiled regex validation
正在进行 Ext.net 项目。我需要在密码字段上设置验证,以防止密码前或密码后有空白 spaces,并且密码长度不应超过 15 个字符,包括空白 spaces。到目前为止,我已经完成了以下操作,但没有用。
问题是文本之间的 space 被视为无效。
例如。它不允许"Pass word",我想不允许“密码”或"password "。
<ext:TextField ID="txtConfirmPwd" AllowBlank="false" InputType="Password" Name="txtConfirmPwd" runat="server" StyleSpec="width:96%;" Regex="^[^\s.^\s]{1,15}$" InvalidClass="invalidClass" Validator="ComparePwd" IDMode="Static">
<Listeners>
<Valid Handler="InvalidClass(this,true);" />
<Invalid Handler="InvalidClass(this,false);" />
</Listeners>
</ext:TextField>
您可以使用
Regex="^\S(?:.{0,13}\S)?$"
详情:
^
- 字符串开头
\S
- 非空白
(?:.{0,13}\S)?
- 1 或 0 个序列:
.{0,13}
- 任何零到十三个字符
\S
- 非空白符号
$
- 字符串结尾。
这意味着,第一个字符必须是非空白字符,然后最多可以有 14 个字符,最后一个字符是非空白字符。
您实际上可以使用前瞻来实现相同的目的,^(?!\s)(?!.*\s$).{1,15}$
。 (?!\s)
是一个否定前瞻,如果第一个(因为模式紧跟在 ^
之后)字符是一个空白字符,则匹配失败,如果空白出现在 (?!.*\s$)
则匹配失败字符串的结尾。但是,对于当前任务来说,它不必要地复杂。
正在进行 Ext.net 项目。我需要在密码字段上设置验证,以防止密码前或密码后有空白 spaces,并且密码长度不应超过 15 个字符,包括空白 spaces。到目前为止,我已经完成了以下操作,但没有用。
问题是文本之间的 space 被视为无效。 例如。它不允许"Pass word",我想不允许“密码”或"password "。
<ext:TextField ID="txtConfirmPwd" AllowBlank="false" InputType="Password" Name="txtConfirmPwd" runat="server" StyleSpec="width:96%;" Regex="^[^\s.^\s]{1,15}$" InvalidClass="invalidClass" Validator="ComparePwd" IDMode="Static">
<Listeners>
<Valid Handler="InvalidClass(this,true);" />
<Invalid Handler="InvalidClass(this,false);" />
</Listeners>
</ext:TextField>
您可以使用
Regex="^\S(?:.{0,13}\S)?$"
详情:
^
- 字符串开头\S
- 非空白(?:.{0,13}\S)?
- 1 或 0 个序列:.{0,13}
- 任何零到十三个字符\S
- 非空白符号
$
- 字符串结尾。
这意味着,第一个字符必须是非空白字符,然后最多可以有 14 个字符,最后一个字符是非空白字符。
您实际上可以使用前瞻来实现相同的目的,^(?!\s)(?!.*\s$).{1,15}$
。 (?!\s)
是一个否定前瞻,如果第一个(因为模式紧跟在 ^
之后)字符是一个空白字符,则匹配失败,如果空白出现在 (?!.*\s$)
则匹配失败字符串的结尾。但是,对于当前任务来说,它不必要地复杂。