san*_*nlu 28 javascript turkish lowercase internationalization uppercase
我想在我想要的语言环境中将字符串转换为JavaScript中的大小写.我认为标准功能喜欢toUpperCase()并且toLocaleUpperCase()不满足这种需求.toLocale函数不能正常运行.
例如,在我的系统上的Safari 4,Chrome 4 Beta,Firefox 3.5.x中,它会错误地转换带有土耳其语字符的字符串.该浏览器响应navigator.language为"en-US","tr","en-US"分别.但是Accept-Lang我无法在浏览器中找到用户的设置."tr"虽然我已经将每个浏览器土耳其语区域设置为首选,但只有Chrome会给我 我认为这些设置仅影响HTTP标头,但我们无法通过JavaScript访问这些设置.
在Mozilla文档中,它说
字符串中的字符将转换为...,同时尊重当前区域设置.对于大多数语言,这将返回相同的...
我认为它对土耳其语有效,它没有区别它配置为en或tr.在土耳其应该转换"D?NÇ"到"dinç"和"DINÇ"对"d?nç"反之亦然.
有没有满足这种需求的JavaScript库?我认为它不仅应该在用户的语言环境中正确转换,而且还应该支持通过locale参数进行转换.因为开发人员无法访问用户配置的首选语言.
Ser*_*sen 56
回到这几年后,提供更多最新的解决方案.
下面没有必要进行黑客攻击,
只需使用 String.toLocaleUpperCase()和String.toLocaleLowerCase()
"dinç".toLocaleUpperCase('tr-TR') // "D?NÇ"
Run Code Online (Sandbox Code Playgroud)
所有浏览器现在支持此功能
[旧,请勿使用此]
试试这些功能
String.prototype.turkishToUpper = function(){
var string = this;
var letters = { "i": "?", "?": "?", "?": "?", "ü": "Ü", "ö": "Ö", "ç": "Ç", "?": "I" };
string = string.replace(/(([i???üçö]))+/g, function(letter){ return letters[letter]; })
return string.toUpperCase();
}
String.prototype.turkishToLower = function(){
var string = this;
var letters = { "?": "i", "I": "?", "?": "?", "?": "?", "Ü": "ü", "Ö": "ö", "Ç": "ç" };
string = string.replace(/(([?I??ÜÇÖ]))+/g, function(letter){ return letters[letter]; })
return string.toLowerCase();
}
// Example
"D?NÇ".turkishToLower(); // => dinç
"DINÇ".turkishToLower(); // => d?nç
Run Code Online (Sandbox Code Playgroud)
我希望他们能为你工作.
小智 26
谢谢你的功能.我真的很喜欢它.连续的土耳其字符输入结果'undefined'为'ÇÇ'.尝试用'/ g'替换'/ + g'.功能将是:
String.prototype.turkishToUpper = function(){
var string = this;
var letters = { "i": "?", "?": "?", "?": "?", "ü": "Ü", "ö": "Ö", "ç": "Ç", "?": "I" };
string = string.replace(/(([i???üçö]))/g, function(letter){ return letters[letter]; })
return string.toUpperCase();
}
String.prototype.turkishToLower = function(){
var string = this;
var letters = { "?": "i", "I": "?", "?": "?", "?": "?", "Ü": "ü", "Ö": "ö", "Ç": "ç" };
string = string.replace(/(([?I??ÜÇÖ]))/g, function(letter){ return letters[letter]; })
return string.toLowerCase();
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
15480 次 |
| 最近记录: |