我有一个用于名称字段的文本框,其中我使用了asp验证来获取正确的名称格式。我想验证字符串之间的多个空格。我该怎么做?trim(( 函数删除了前导空格和尾随空格,但如何验证字符串之间的多个空格?喜欢
multiple spaces
no space
我的验证码:
<label>
<span>Full name</span>
<input type="text" id="txt_name" runat="server" required="required"/>
<asp:RegularExpressionValidator ID="rev_txt_name" runat="server" ControlToValidate="txt_name" ForeColor="Red"
ErrorMessage="Invalid name!" SetFocusOnError="True" ValidationExpression="^[a-zA-Z'.s]{2,50}"></asp:RegularExpressionValidator>
</label>
您使用的模式允许匹配字符串内任何位置的空格以及任何出现,无论是否连续,因为它是相当通用的字符类的一部分。您需要使用分组并相应地对其进行量化:
^(?=.{2,50}$)[a-zA-Z'.]+(?:s[a-zA-Z'.]+)*$
请注意,(?=.{2,50}$)
前瞻要求整行长度为 2 到 50 个字符。
请参阅正则表达式演示。
详情:
-
^
- 字符串的开头 -
(?=.{2,50}$)
- 一个积极的展望,需要任何 2 到 50 个字符,而不是一个换行符,直到字符串的末尾 -
[a-zA-Z'.]+
- 1+ 字母、单引号或点字符 -
(?:
- 非捕获组启动:-
s
- 1 个空格 -
[a-zA-Z'.]+
- 1+ 字母、单引号或点字符
-
-
)*
- 零次或多次 (*
( 次出现 -
$
- 字符串结尾