字符串之间多个空格的 ASP 验证



我有一个用于名称字段的文本框,其中我使用了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+ 字母、单引号或点字符
  • )* - 零次或多次 (*( 次出现
  • $ - 字符串结尾

最新更新