Принять ди git десятичный ввод в javascript - PullRequest
0 голосов
/ 02 марта 2020

На данный момент у меня есть регулярное выражение для JavaScript, которое просто выполняет следующие действия:

^[1-9][0-9]{1,2}(\.[0-9][0-9]$)?$/i

1) Принимает только 3 di git

2) Принимает только 2 десятичных числа

3) Примите только di git начальную форму 1-9 для запуска

Но я бы хотел расширить регулярное выражение, чтобы также отклонить следующий ввод:

1) Нет точки в начале --- .12

2) Нет точки в конце --- 1212.12.

3) Не более одной точки --- 12.12. 12.12

4) Не допускается использование клавиш ("+", "-") в любом из входных данных --- + 12-12.21

Подводя итог следующему результату:

1) 123.12 - принять

2) 123.12.12 - отклонить (более одной точки)

3) 123.12..12. - отклонить (более одной точки и заканчивается точкой)

4) + 123.12-12 - отклонить (начинается с "+" и состоит из "-")

ОБНОВЛЕНИЕ

Я использую фреймворк JavaScript и требуется только для кодирования объекта в качестве базы кода для динамического создания компонентов ввода для меня, и я забыл о типе ввода для него 'число' , а не 'текст' .

      {
        type: 'input',
        label: 'Fabric Weight',
        placeholder: 'Fabric Weight (Value : 000.00)',
        name: 'FABRIC_WEIGHT',
        inputType: 'text', **<--- was 'number'**
        isShown: true,
        validations: [
          {
            name: 'pattern',
            validator: Validators.pattern(threeDigitTwoDecimalRegex),
            message:
              'Please enter number less than 1000 with / without two decimal!'
          }
        ]
      },

Ответы [ 3 ]

0 голосов
/ 02 марта 2020

Это работает:

^\d{1,3}$|^\d{1,3}.\d{1,2}$

Смотрите пример здесь -> RegexTester

0 голосов
/ 02 марта 2020

Попробуйте это:
------------------------
1 = false
12 = false
123 = true
1234 = false
123.1 = false
123.12 = true
123.123 = false

var inp = document.getElementById('numberDecimal');
inp.addEventListener('keyup', function(){	
  var regex = /^([1-9]\d{2}(?:\.\d{2})?)$/igm;
  console.log(regex.test(this.value)); //checking true/false
});
<input type="number" name="number" id="numberDecimal" placeholder="Enter Number">
0 голосов
/ 02 марта 2020

Попробуйте это (разрешить отрицательное число):

/^(-?\d+(?:\.\d+)?)$/i

и (только положительное число)

/^(\d+(?:\.\d+)?)$/i

https://regex101.com/r/Nm3t8d/1

| ========= РЕДАКТИРОВАТЬ 1 ========== |

 /^([-\+]?[1-9]\d{2}(?:\.\d{1,2})?)$/i

1) Принять только 3 di git

2) Принять только 2 десятичных числа

3) Принять только ди git стартовая форма 1-9 для старта

Демо: https://regex101.com/r/ocsUn4/3

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...