Регулярное выражение или полный JavaScript для проверки зарплаты («двойное» число)?

#javascript #validation

#javascript #проверка

Вопрос:

Я хочу проверить текстовое поле зарплаты с помощью Java script на моей html-странице с синтаксисом, подобным Max six digits, a dot, max two digits after dot , и это можно сделать двумя способами:

1) Я заставляю пользователя вводить только целочисленные значения и append a dot and two zeros at the end некоторые javaScript code .

2) Проверьте запись, указанную пользователем во время formValidation с помощью a regex , которая может передавать правильный синтаксис, как я описал выше…

Что будет проще? И как это может быть достигнуто?

Ответ №1:

Максимум шесть цифр, точка, максимум две цифры после точки

 /^d{1,6}(?:.d{0,2})?$/
  

На самом деле это означает от 1 до шести цифр, за которыми необязательно следует точка и максимум две цифры.

Если вы хотите потребовать точку, используйте

 /^d{1,6}.d{0,2}$/
  

Если вы хотите разрешить запятые, например 150,000 , попробуйте заменить d{1,6} на

 d{1,3}(?:,?d{3})?
  

Комментарии:

1. Стоит помнить, что страны, не являющиеся гражданами США, могут использовать запятую в качестве десятичного разделителя вместо точки. en.wikipedia.org/wiki/Decimal_mark#Hindu-Arabic_numeral_system

2. @mblase75, Хорошая мысль. Я просто пытаюсь ответить на заданный вопрос. Страны, не являющиеся гражданами США, также могут разбивать ряды цифр на мириады из 2 или 4 цифр вместо 3, которые являются стандартными в США.

3. правда, мой комментарий должен был быть приложен к ОП вместо вашего ответа.

4. @mblase75, не беспокойся. Люди иногда ссылаются непосредственно на ответы, поэтому хорошо, если вместе с ответами появляются оговорки, чтобы люди не истолковывали их как слишком широкое применение при удалении из контекста вопроса.