Autor Zpráva
Gray blogger
Profil *
Snažím se napsat JS funkci na kontrolu jména ale nefunguje mi to. Snažil jsem se vyjít z funkce validateEmail, která funguje.

function validateName(jmeno) {
var re = /^(([^^%&*@$0-9<>()[]{}\/\\.!?,;:\s`'"]{6,35}\d{0,2}))$/;
return re.test(String(jmeno));
}
function validateEmail(email) {
var re = /^(([<>()\[\]\\.,:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;
return re.test(String(email).toLowerCase());
}

Příklad implementace:
function checkPersonalData(jmeno, email, heslo1, heslo2) {
if( jmeno && validateName(jmeno)===false ) {
 alert("Jméno neprošlo kontrolou. Neobvyklé znaky ve jménu nejsou povoleny. Povolený rozsah znaků: 6-35. Jsou povoleny maximálně dvě číslice na konci řetězce.");
 return false;
 }
if( email && validateEmail(email)===false ) {
 alert("Email neprošel kontrolou. Neobvyklé znaky v emailové adrese nejsou povoleny.")
 return false;
 }
Keeehi
Profil
Zpětné limítko jsi escapoval, ale závorku ne.
^(([^^%&*@$0-9<>()[\]{}\/\\.!?,;:\s`'"]{6,35}\d{0,2}))$
Na analýzu regulárních výrazů můžu doporučit regex101.com. Hezky ti to tam jednotlivé části rozepíše, barevně označí a i vysvětlí, co každá dělá.
ty dvojité kulaté závirky kolem celého výrazu jsou zbytečné
Gray blogger
Profil *
A kdybych chtěl detekovat české znaky? Jak rozšířit třídu. Ne konkrétně tento výraz, ale tento:

var re3 = /(([A-Za-z]{1,8} ){4,})/;

Zde se snažím detekovat jestli tam nejsou slova četněkrát se opakující.


A dík za pomoc.


Používám znaky v utf8
Keeehi
Profil
Gray blogger:
Normálně je tam vypiš. Je to nejjednodušší řešení. Abys to nemusel psát dvakrát, tak je napiš vsechny malé a konzrolu velikosti vypni flagem i.
Gray blogger
Profil *
dík

Vaše odpověď

Mohlo by se hodit

Neumíte-li správně určit příčinu chyby, vkládejte odkazy na živé ukázky.
Užíváte-li nějakou cizí knihovnu, ukažte odpovídajícím, kde jste ji vzali.

Užitečné odkazy:

Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0