Я пытаюсь использовать jquery-inputmask , чтобы маскировать ввод пользователя следующим образом, когда они вводят числа в поле:
1 => 1 # 1 second
12 => 12 # 12 seconds
123 => 1:23 # 1 minute, 23 seconds
1234 => 12:34 # 12 minutes, 34 seconds
12345 => 1:23:45 # 1 hour, 23 minutes, 45 seconds
123456 => 12:34:56 # 12 hours, 34 minutes, 56 seconds
1.23 => 1.23 # 1.23 seconds
12.34 => 12.34 # 12.34 seconds
123.45 => 1:23.45 # 1 minute, 23.45 seconds
1234.56 => 12:34.56 # 12 minutes, 34.56 seconds
12345.67 => 1:23:45.67 # 1 hour, 23 minutes, 45.67 seconds
123456.78 => 12:34:56.78 # 12 hours, 34 minutes, 56.78 seconds
Но у меня нетмного удачи.
Лучшее, что у меня есть, это:
# inputmasks/time.coffee
@Inputmasks.Time = class @Time extends @Inputmasks.Inputmask
constructor: (input) ->
@input = input
mask: ->
@input.inputmask '[9{2}:]9{0,2}',
placeholder: "0"
showMaskOnHover: false
greedy: false
rightAlign: false
numericInput: true
, который дает мне следующие функциональные возможности:
1 => 1 # 1 second
12 => 12 # 12 seconds
123 => 1:23 # 1 minute, 23 seconds
1234 => 12:34 # 12 minutes, 34 seconds
Если я попробую этот шаблон'[9{2}:][9{2}:]9{0,2}'
(просто дублирует то, что работает в течение нескольких минут), оно разбивается на 4 цифры:
1 => 1 # 1 second
12 => 12 # 12 seconds
123 => 1:23 # 1 minute, 23 seconds
1234 => 1:2:34 # WRONG
Я перепробовал много вариантов, но, похоже, не могу сделать это правильно.
У меня также возникают проблемы с дополнительными десятичными знаками.Я пытался использовать синтаксис из других примеров, но они не работают правильно.Например, этот шаблон '[9{2}:]9{0,2}[.9{0,2}]'
делает следующее:
1 => 1 # 1 second
12 => .12 . # WRONG
122 => 1.23 # WRONG
... # Continues to be wrong
Я в растерянности.Не могу понять это.Любая помощь будет оценена.Не должен быть плагином inputmask.Я открыт, чтобы использовать все, что хорошо работает.