我有一个表单字段,要求"全名"当用户注册时我想然后将该字符串拆分为名字,然后是姓氏。我可以使用以下代码:
<%
If Request.Form("user[username]") <> "" Then
NameStr = Request.Form("user[username]")
Dim WordArray
WordArray = Split(NameStr, " ")
End If
%>
然后,我可以将变量拆分为我的表单:
value="<%=WordArray(0)%>"
value="<%=WordArray(1)%>"
但是,如果用户只是将他们的名字放入我的错误中,因为Split正在寻找单词之间的空格以正确执行操作。我试过了:
<%
If Request.Form("user[username]") <> "" Then
NameStr = Request.Form("user[username]")
Dim WordArray
If NameStr = "" Then
WordArray = Split(NameStr, "")
Else
WordArray = Split(NameStr, " ")
End If
End If
%>
现在我知道这会失败,因为它永远不会是空白但是有没有办法看看如果只有一个名字而没有姓氏,拆分是否会出错?我已经看过验证表单字段但看不到确保它们之间有空格的方法。
有什么想法吗?
答案 0 :(得分:2)
Split
不是问题。如果字符串中没有空格,Split
将不会抛出错误,但会返回只包含一个元素的数组。您应该做的是使用WordArray
函数检查UBound
的上限:
Dim WordArray, firstName, lastName
WordArray = Split(NameStr, " ")
firstName = WordArray(0)
If UBound(WordArray) >= 1 Then
lastName = WordArray(1)
Else
lastName = ""
End If
答案 1 :(得分:-1)
这不是一个真正的修复,但我管理了一些“老派”VBA技术,它至少陷入了错误:
<%
If Request.Form("user[username]") <> "" Then
NameStr = Request.Form("user[username]")
Dim WordArray
WordArray = Split(NameStr, " ")
On Error Resume Next
End If
%>
On Error Resume Next
只是忽略错误并继续前进。脏(就像ASP一样,但它有效!)。