views:

55

answers:

2

Hi!

I'm creating a browser-based form verification script that checks if the input doesn't have any uppercase characters according to Unicode Standards. My definition of an uppercase character is a character that has a lowercase mapping. If a certain character in the input string doesn't have a lowercase or uppercase mapping (like chinese characters) then it's alright (it should pass my validation).

I'm using UTF-8 encoding.

I'm planning to create a function that looks like this:

function hasUpper(str){
  if(str != str.toLowerCase()){
    return True
  }
  else {
    return False
  }
}

Will this work for my needs?

Thanks!

+2  A: 

Yes, that will work. Incidentally, the Boolean keywords are true and false, lower case. :)

Robusto
I the same vein the function can be shortened to: function hasUpper (str) { return str !== str.toLowerCase (); } Bah, no formatting in comments :-(
Hans B PUFAL
@Hans B PUFAL: asddYou can format by bracketing with the backwards accent character, which is the lowercase option on the tilde key (~).
Robusto
@robusto - not neccesarily - im the # symbol is the lowercase option on my (UK) keyboard. The backtick symbol is above the tab key.
Nico Burns
@Nico Burns: Reminds me of Shaw's comment that England and America are two countries separated by a common language. Cheers. :)
Robusto
Thanks! the Boolean keywords are in lowercase, indeed.
Albert
A: 

The question answered here seems to indicate that toLower and toUpper are Unicode-aware:Stack OverFlow

And this one goes into it in more detail (indicating that some mappings conflict with the real world):more Stack Overflow

Hope this helps!

wilsona