InStr () asp классическая проверка полей формы - PullRequest
1 голос
/ 14 февраля 2012

Я пытаюсь проверить действительный адрес электронной почты в поле формы, используя:

if Request ("email") = "" then
        bError = true
ElseIf Instr(1, email," ") <> 0 Then
        bError = true
ElseIf InStr(1, email, "@", 1) < 2 Then
        bError = true
    else
          */go to success page*/

Но если в адресе электронной почты есть пробел, он все равно проходит проверку. Поэтому мой вопрос: как я могу проверить пробелы, используя этот метод?

Ответы [ 3 ]

4 голосов
/ 14 февраля 2012

Вам лучше использовать для этого регулярное выражение.

http://classicasp.aspfaq.com/email/how-do-i-validate-an-e-mail-address.html

   Function isEmailValid(email) 
        Set regEx = New RegExp 
        regEx.Pattern = "^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w{2,}$" 
        isEmailValid = regEx.Test(trim(email)) 
    End Function 
1 голос
/ 16 февраля 2012

Забудьте обо всем остальном, сделайте это просто ...


Dim strEmail
Dim intErrors
intErrors = 0
strEmail = REQUEST("email")
strEmail = Trim(strEmail)
if strEmail = ""           then intErrors = intErrors +1;
if instr(strEmail," ") > 0 then intErrors = intErrors +1;
if instr(strEmail,".") = 0 then intErrors = intErrors +1;
if instr(strEmail,"@") < 2 then intErrors = intErrors +1;

' Put as many test conditions as you want here

if intErrors  = 0 then GotoSuccessPage
0 голосов
/ 15 февраля 2012
if Request ("email") = "" or Instr(email," ") > 0 or InStr(email, "@") < 2 then
    bError = true
else
    'go to success page
    'BUT ABOUT OTHER ISSUES?

end if 

--------------- ЗДЕСЬ НЕРАКРЕКСНЫЙ ЧЕКЕР ПОЧТЫ НА ОСНОВЕ ЭЛЕКТРОННОЙ ПОЧТЫ, НЕ УВЕРЕН, ЕСЛИ ЕГО ДОКАЗАТЕЛЬСТВО НЕДОСТАТОЧНО, НО ЛУЧШЕ, ЧЕМ ПРЕДСТАВЛЕННЫЙ НАКЛОН, КОТОРЫЙ ДОЛЖЕН ПОЛУЧИТЬ ВАМ ...

Function IsEmail(sCheckEmail)

    Dim SEmail, NAtLoc

    IsEmail = True

    SEmail = Trim(sCheckEmail)

    NAtLoc = InStr(SEmail, "@")

    If Not (nAtLoc > 1 And (InStrRev(sEmail, ".") > NAtLoc + 1)) Then

        IsEmail = False

    ElseIf InStr(nAtLoc + 1, SEmail, "@") > NAtLoc Then

        IsEmail = False

    ElseIf Mid(sEmail, NAtLoc + 1, 1) = "." Then

        IsEmail = False

    ElseIf InStr(1, Right(sEmail, 2), ".") > 0 Then

        IsEmail = False

    End If

End Function
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...