javascript - touppercase - ¿Cómo convierto una cadena a un número según la configuración regional(al contrario de.toLocaleString)?
tolowecase (4)
Creo que estas buscando algo como:
https://github.com/jquery/globalize
El enlace de arriba te llevará a la página del proyecto git. Esta es una biblioteca js aportada por Microsoft. Deberías intentarlo e intentar usar el método formt de ese complemento. Si quieres estudiar este plugin, aquí está el enlace para el mismo:
http://weblogs.asp.net/scottgu/jquery-globalization-plugin-from-microsoft
Espero que esto sea lo que está buscando y resuelva su problema pronto. Si no funciona, hágamelo saber.
Si lo hago:
var number = 3500;
alert(number.toLocaleString("hi-IN"));
Obtendré ३,५००
en hindi.
Pero, ¿cómo puedo convertirlo de nuevo a 3500
. Quiero algo como:
var str=''३,५००'';
alert(str.toLocaleNumber("en-US"));
Por lo tanto, que puede dar 3500
.
¿Es posible por javascript, jquery o cualquier otra biblioteca gratuita?
Lamentablemente tendrás que abordar la localización manualmente. Inspirado por esta respuesta , creé una función que reemplazará manualmente los números de Hindi:
function parseHindi(str) {
return Number(str.replace(/[०१२३४५६७८९]/g, function (d) {
return d.charCodeAt(0) - 2406;
}).replace(/[०१२३४५६७८९]/g, function (d) {
return d.charCodeAt(0) - 2415;
}));
}
alert(parseHindi("३५००"));
Fiddle aquí: http://jsfiddle.net/yyxgxav4/
Puedes probar esto
function ConvertDigits(input, source, target) {
var systems = {
arabic: 48, english: 48, tamil: 3046, kannada: 3302, telugu: 3174, hindi: 2406,
malayalam: 3430, oriya: 2918, gurmukhi: 2662, nagari: 2534, gujarati: 2790,
},
output = [], offset = 0, zero = 0, nine = 0, char = 0;
source = source.toLowerCase();
target = target.toLowerCase();
if (!(source in systems && target in systems) || input == null || typeof input == "undefined" || typeof input == "object") {
return input;
}
input = input.toString();
offset = systems[target] - systems[source];
zero = systems[source];
nine = systems[source] + 9;
for (var i = 0 ; i < input.length; i++) {
var char = input.charCodeAt(i);
if (char >= zero && char <= nine) {
output.push(String.fromCharCode(char + offset));
} else {
output.push(input[i]);
}
}
return output.join("");
}
var res = ConvertDigits (''१२३४५६७८ ९'', ''hindi'', ''inglés'');
Lo obtuve de here Si necesitas algo relacionado con jquery, https://github.com/jquery/globalize
Usa la https://github.com/jquery/globalize .
Instalarlo
npm install globalize cldr-data --save
entonces
var cldr = require("cldr-data");
var Globalize = require("globalize");
Globalize.load(cldr("supplemental/likelySubtags"));
Globalize.load(cldr("supplemental/numberingSystems"));
Globalize.load(cldr("supplemental/currencyData"));
//replace ''hi'' with appropriate language tag
Globalize.load(cldr("main/hi/numbers"));
Globalize.load(cldr("main/hi/currencies"));
//You may replace the above locale-specific loads with the following line,
// which will load every type of CLDR language data for every available locale
// and may consume several hundred megs of memory!
//Use with caution.
//Globalize.load(cldr.all());
//Set the locale
//We use the extention u-nu-native to indicate that Devanagari and
// not Latin numerals should be used.
// ''-u'' means extension
// ''-nu'' means number
// ''-native'' means use native script
//Without -u-nu-native this example will not work
//See
// https://en.wikipedia.org/wiki/IETF_language_tag#Extension_U_.28Unicode_Locale.29
// for more details on the U language code extension
var hindiGlobalizer = Globalize(''hi-IN-u-nu-native'');
var parseHindiNumber = hindiGlobalizer.numberParser();
var formatHindiNumber = hindiGlobalizer.numberFormatter();
var formatRupeeCurrency = hindiGlobalizer.currencyFormatter("INR");
console.log(parseHindiNumber(''३,५००'')); //3500
console.log(formatHindiNumber(3500)); //३,५००
console.log(formatRupeeCurrency(3500)); //₹३,५००.००