"Your Name" to
Use either toLowerCase or toLocaleLowerCase methods of the String object. The difference is that
toLocaleLowerCase will take current locale of the user/host into account. As per § 220.127.116.11 of the ECMAScript Language Specification (ECMA-262),
…works exactly the same as toLowerCase
except that its result is intended to
yield the correct result for the host
environment’s current locale, rather
than a locale-independent result.
There will only be a difference in the
few cases (such as Turkish) where the
rules for that language conflict with
the regular Unicode case mappings.
var lower="Your Name".toLowerCase();
Also note that the
toLocaleLowerCase functions are implemented to work generically on any value type. Therefore you can invoke these functions even on non-
String objects. Doing so will imply automatic conversion to a string value prior to changing the case of each character in the resulting string value. For example, you can apply
toLowerCase directly on a date like this:
var lower = String.prototype.toLowerCase.apply(new Date());
and which is effectively equivalent to:
var lower = new Date().toString().toLowerCase();
The second form is generally preferred for its simplicity and readability. On earlier versions of IE, the first had the benefit that it could work with a
null value. The result of applying
null would yield
null (and not an error condition).
var lowerCaseName = "Your Name".toLowerCase();
toLocaleUpperCase() or lower case functions don’t behave like they should do.
For example in my system, Safari 4, Chrome 4 Beta, Firefox 3.5.x it converts strings with Turkish characters incorrectly.
The browsers respond to navigator.language as “en-US”, “tr”, “en-US” respectively.
But there is no way to get user’s Accept-Lang setting in the browser as far as I could find.
Only Chrome gives me trouble although I have configured every browser as tr-TR locale preferred.
I think these settings only affect HTTP header, but we can’t access to these settings via JS.
In the Mozilla documentation it says “The characters within a string are converted to … while respecting the current locale.
For most languages, this will return the same as …”.
I think it’s valid for Turkish, it doesn’t differ it’s configured as en or tr.
In Turkish it should convert “DİNÇ” to “dinç” and “DINÇ” to “dınç” or vice-versa.
toLowerCase() method that will return a new string that is the old string in all lower case. The old string will remain unchanged.
So, you can do something like: