Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

IsCharacter function

[es] :: Javascript i AJAX :: IsCharacter function

[ Pregleda: 1139 | Odgovora: 4 ]

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

ZeRo8
ivan stojkovic
Wien

Član broj: 168
Poruke: 230
*.goethe-wien.at.



Profil

icon IsCharacter function02.08.2006. u 11:54

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;
    }
02.08.2006. u 11:54 

Br@nkoR

Član broj: 2597
Poruke: 1388
*.ptt.yu.



Profil

icon Re: IsCharacter function03.08.2006. u 11:21
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.
03.08.2006. u 11:21 

Br@nkoR

Član broj: 2597
Poruke: 1388
*.ptt.yu.



Profil

icon Re: IsCharacter function03.08.2006. u 11:24
zaboravio sam da na es-u ne prolazi ćirilica.
03.08.2006. u 11:24 

ZeRo8
ivan stojkovic
Wien

Član broj: 168
Poruke: 230
*.goethe-wien.at.



Profil

icon Re: IsCharacter function03.08.2006. u 11:40
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;
    }
03.08.2006. u 11:40 

Br@nkoR

Član broj: 2597
Poruke: 1388
*.ptt.yu.



Profil

icon Re: IsCharacter function03.08.2006. u 14:06
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;
}


[Ovu poruku je menjao Br@nkoR dana 03.08.2006. u 15:26 GMT+1]
03.08.2006. u 14:06 

[es] :: Javascript i AJAX :: IsCharacter function

[ Pregleda: 1139 | Odgovora: 4 ]

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.