代码之家  ›  专栏  ›  技术社区  ›  Sukhpreet Grewal

防止用户输入除a-z和空格以外的任何其他字符的数据验证?

  •  2
  • Sukhpreet Grewal  · 技术社区  · 8 年前

    我正在HTA中创建一个文本框,用户必须在其中添加全名。但问题是用户可以添加“-hai_772”这样的名称。我只想让用户只能使用字母字母,他可以在两个单词内使用空格。

    我尝试了以下操作,但失败了,因为我不知道如何为所有不需要的特殊字符设置模式。

    Set re = New RegExp
    re.Pattern = "[Specialchrs,numeric-space]"
    re.IgnoreCase =True
    re.Global = True
    hasMatches = re.Test(textbox.value)  
    If hasMatches =True Then
      MsgBox "use letter"
    End If
    
    1 回复  |  直到 8 年前
        1
  •  1
  •   Ansgar Wiechers    8 年前

    检查输入字符串是否包含任何非“已知好”字符,而不是检查“已知坏”字符:

    Set re = New RegExp
    re.Pattern    = "[^a-z ]"
    re.IgnoreCase = True
    re.Global     = True
    If re.Test(textbox.value) Then
      MsgBox "use letters"
    End If
    

    通过插入插入符号( ^ )在字符类的开头( [...] )您反转类(即使其与类中未列出的字符匹配)。看见 here 了解更多信息。

    比按脚本检查输入更好的方法是为输入字段定义允许的字符,这样它就不会首先接受其他输入:

    <input type="text" pattern="[a-zA-Z ]*" />