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

Data Validation that prevents user from entering any other character except a-z and spaces?

我正在 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

不检查 "known-bad" 个字符,而是检查输入字符串是否包含任何不 "known-good" 的字符:

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

通过在字符 class ([...]) 的开头放置插入符号 (^),您可以反转 class(即使其匹配字符未在 class 中列出)。有关详细信息,请参阅 here

比通过脚本检查输入更好的方法是为您的输入字段定义允许的字符,因此它首先不接受其他输入:

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