2016-04-17 3 views
1

Wie kann ich eine Funktion implementieren, die überprüft, ob der angegebene Benutzername ein alphanumerisches Zeichen ist, beginnend mit einem Kleinbuchstaben (Erlang-Atom)?Wie kann ich eine Funktion implementieren, die prüft, ob der angegebene Benutzername ein alphanumerischer Anfangsbuchstabe in Erlang ist?

Diese Funktion ist das Äquivalent in javascript:

<script language="javascript"> 
function verif(){ 
var x = document.getElementById('username').value; 
if (x.length == 1 && x.charAt(x.length-1)== "'") 
{ 
    alert("Please provide a valid user name. The user name has to be a alphanumerical starting with a lowercase letter !"); 
    return false; 
} 
else if (x[0] == "'" && x.charAt(x.length - 1) =="'") 
{ 
return true; 
} 
else 
{ 
    var b = x[0] === x[0].toUpperCase(); 
    if (b == true) 
    { 
      alert("Please provide a valid user name. The user name has to be a alphanumerical starting with a lowercase letter !"); 
      return false; 
    } 
} 
} 

+0

Ist das Hausaufgaben? –

+0

Es ist eine RefactorERL Aufgabe, und ich versuche, eine neue Web-Schnittstelle für refactorERL öffentlichen Server zu implementieren, diese Frage bezieht sich auf das Registrierungsformular. Der Benutzername muss alphanumerisch sein und mit einem Kleinbuchstaben beginnen. I geprüft: Fall is_atom (Benutzername) von ......... aber geht immer 'false' Ich habe versucht, den Benutzernamen zu drucken, und das ist, was ich habe: der Benutzername ist:" fudelsalhi " –

Antwort

3

So müssen Sie den Benutzernamen ein nicht leere Zeichenfolge sein, wobei das erste Element ein Kleinbuchstabe ist, und der Rest sind Buchstaben oder Zahlen.

Beginnen wir mit den ersten Buchstaben passende heraus:

is_valid_username([First | Rest]) -> 

Überprüfen Sie, ob es ein Kleinbuchstabe:

$a =< First andalso First =< $z 

und prüfen, ob der Rest der Zeichen alphanumerische sind:

 andalso lists:all(fun is_alphanumeric/1, Rest); 

Schließlich fügen Sie eine Funktionsklausel für die leere Zeichenfolge hinzu:

is_valid_username("") -> 
    false. 

Jetzt brauchen wir nur die Funktion is_alphanumeric/1, zu implementieren, die ein einzelnes Zeichen überprüft:

is_alphanumeric(C) -> 
    $A =< C andalso C =< $Z orelse 
    $a =< C andalso C =< $z orelse 
    $0 =< C andalso C =< $9.