Novo

Forum kao aplikacija na telefonu

Dodajte forum na početni ekran i koristite ga kao aplikaciju, sa menijem na dnu ekrana.

  • 4 odgovora
  • 6.673 pregleda

Najnovija ↓

IsCharacter function 02.08.2006. u 12:54 · pre 246 meseci #1
Pitanje je opste programersko, nije vezano bas za javascript ali posto cu ga koristiti s javascriptom zato ga postavljam ovde.

Imam funkciju isCharacter koja treba da proveri da li je uneti string sastavljen samo od karaktera, znaci bez brojeva i specijalnih znakova(&%$§...), ali treba biti ukljuceni i umlauti ö,ä ... zatim u francuskom - a s akcentom ... i slicno.

Ovo je moja trenutna funkcija:


Code:
function isCharacter(str)
    {
        tmpstr = " "
        for (i = 0; i < str.length; i++)
            {
                if (!((str.charAt(i) >= "A" && str.charAt(i) <= "Z") || (str.charAt(i) >= "a" && str.charAt(i) <= "z") || (str.charAt(i) == tmpstr) || (str.charAt(i) == "."))) return false;
            }
        return true;
    }
Re: IsCharacter function 03.08.2006. u 12:21 · pre 246 meseci #2
Hmm... regularni izrazi

Npr. nešto na brzinu:
Code:

String.prototype.isCharacter = function() {
  if(!this || this.length == 0) return false;
  var re = /^[a-z\xC0-\xFF\u0430-\u045F]+$/i
  if(!re.exec(this)) return false;
  return true;
}
alert('abvgdđežzijklljmnnjoprstćufhcčdžš'.isCharacter());
alert('öä'.isCharacter());
alert('asdf1'.isCharacter());
alert('asdf&!%$'.isCharacter());


Nisam siguran da li sam obuhvatio sve karaktere koji su potrebni, testirano je sa utf-8 enkodingom, postavljena je i ćirilica za to nisam siguran da li je potrebno sve od \u0400 do \u04FF, takođe nisam siguran za ostale znakove pa sam postavio heksadecimalne karaktere od \xC0 do \xFF, možda je potrebno dodati još neki.
Potpis
Banned - Not available
Re: IsCharacter function 03.08.2006. u 12:24 · pre 246 meseci #3
:( zaboravio sam da na es-u ne prolazi ćirilica.
Potpis
Banned - Not available
Re: IsCharacter function 03.08.2006. u 12:40 · pre 246 meseci #4
Evo i ja sam nesto napisao:

Code:

function isCharacter(str)
    {
        tmpstr = " ";
        for (i = 0; i < str.length; i++)
            {
                if (!((str.charCodeAt(i) >= "65" && str.charCodeAt(i) <= "90") || 
                (str.charCodeAt(i) >= "97" && str.charCodeAt(i) <= "122") || 
                (str.charCodeAt(i) >= "153" && str.charCodeAt(i) <= "157") || 
                (str.charCodeAt(i) >= "128" && str.charCodeAt(i) <= "151") || 
                (str.charCodeAt(i) >= "159" && str.charCodeAt(i) <= "167") || 
                (str.charCodeAt(i) >= "224" && str.charCodeAt(i) <= "238") || 
                (str.charCodeAt(i) >= "244" && str.charCodeAt(i) <= "245") || 
                (str.charAt(i) == tmpstr) || (str.charAt(i) == "."))) return false;
            }
        return true;
    }
Re: IsCharacter function 03.08.2006. u 15:06 · pre 246 meseci
izmenjeno 1 put, poslednji put Br@nkoR 03.08.2006. u 15:26
  1. Br@nkoR03.08.2006. u 15:26zapis iz teksta poruke
#5
Sada videh da ne prolaze u mom primeru latinični karakteri
Code:
č ć š đ ž

Trebalo bi dodati i
Code:
\u010D \u0107 \u0161 \u0111 \u017E

Zaboravio sam da testiram gornji kôd za te karaktere. Bio sam testirao, kada sam prvi put probao ovo da realizujem, ali tada su prolazili svi utf karakteri, nešto kao
Code:

String.prototype.isCharacter = function() {
  if(!this || this.length == 0) return false;
  var re = /^([a-z])|(%[C-F]{1}[0-9A-F]{1})|(%u[0-9A-F]{4})$/i
  for(var i=0, len=this.length; i<len; i++) {
    if(!re.exec(escape(this.charAt(i)))) return false;
  }
  return true;
}
Potpis
Banned - Not available
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme