Kui soovin kontrollida, et nimi tohib sisaldada vaid tähti ja tühikuid, siis kas sobib selline regulaaravaldise muster: '^([a-zA-Z]|[[:space:]])+$' ?

Postitas Erki Eessaar
Ei, kahjuks ei sobi, sest Te välistate nimedes näiteks täpitähed. Märkide hulga [a-zA-Z] asemel tuleks kasutada märkide klassi [:alpha:].

PostgreSQL

SELECT 'Õnne Pärl'~'^([a-zA-Z]|[[:space:]])+$' AS tulemus;
Tulemus: FALSE

SELECT 'Õnne Pärl'~'^([[:alpha:]]|[[:space:]])+$' AS tulemus;
Tulemus: TRUE

Oracle

DECLARE
result BOOLEAN;
BEGIN
result:=REGEXP_LIKE('Õnne Pärl', '^([a-zA-Z]|[[:space:]])+$');
IF (result=true) THEN
dbms_output.put_line('TRUE');
ELSE
dbms_output.put_line('FALSE');
END IF;
END;
/

Tulemus: FALSE

DECLARE
result BOOLEAN;
BEGIN
result:=REGEXP_LIKE('Õnne Pärl', '^([[:alpha:]]|[[:space:]])+$');
IF (result=true) THEN
dbms_output.put_line('TRUE');
ELSE
dbms_output.put_line('FALSE');
END IF;
END;
/


Tulemus: TRUE

Märkide klassid.

Eraldi küsimus on, kas isikunimede puhul on sellist kontrolli vaja? Leian, et ei ole, sest tulenevalt kultuurilistest eripäradest võivad nimed olla väga eripalgelised.

Hinda postitust:

Keskmine hinne : Pole veel hinnanguid!