Использование jquery-inputmask для ввода времени справа налево - PullRequest
0 голосов
/ 04 мая 2019

Я пытаюсь использовать 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.Я открыт, чтобы использовать все, что хорошо работает.

...