[ ZeRo8 @ 02.08.2006. 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;
    }
[ Br@nkoR @ 03.08.2006. 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.
[ Br@nkoR @ 03.08.2006. 11:24 ] @
zaboravio sam da na es-u ne prolazi ćirilica.
[ ZeRo8 @ 03.08.2006. 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;
    }
[ Br@nkoR @ 03.08.2006. 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]