Да, это возможно.
Метод 1 - короткое грязное исправление - вычислите разницу между вашим набором цифр и латинскими цифрами и замените их. Затем просто заполните пропущенные "0" s
См. Код ниже (это работает для вашего примера, но я не проверяю входную строку, это зависит от вас)
var str = "१:१३:१२";
var offset = "१".charCodeAt(0) - "1".charCodeAt(0);
// replace everything but ":"
var result = str.replace(/[^:]/g, function(el){
return String.fromCharCode(el.charCodeAt(0) - offset);
})
console.log(result);
result = result.split(":").map(el=>el.length === 2? el: "0" + el).join(":");
console.log(result);
Метод 2 - рекомендуется - используйте локали при создании строки продолжительности, например: если у вас есть доступ к Data
объекту вашей продолжительности, вы можете использовать Intl.DateTimeFormat и получить строку с латинской системой нумерации : "nu-latin"
часть в строке локали.
Примечание: если вы используете некоторую библиотеку для создания продолжительности, возможно, есть какой-то способ установить языковой стандарт
var date = new Date()
logLocaleDate("en-u-nu-deva-hc-h24")
logLocaleDate("en-u-nu-latin-hc-h24")
function logLocaleDate(locale){
var res = (new Intl.DateTimeFormat(locale, {hour: "2-digit", minute: "2-digit", second:"2-digit"}).format(date))
console.log(res);
}