2013-09-19 4 views
1

Я использую следующий шаблон для десятичной проверки.Проверка десятичного кода

var pattern = /^([0-9]+)[.][0-9]{0,2}$/; 

Мне нужно ввести только 10 цифр. , например,

12345678.00 

необходимо ввести 8 цифр перед точкой. после точки, 2 цифры являются необязательными. как проверить только ввод 8 цифр перед символом точки?

+0

Я знаю, что я уже представил ответ, но у меня есть вопрос, который может вызвать меня, чтобы изменить его. Что, если пользователь вводит 3 или 4 цифры после точки, вы хотите совместить первые два или нет? –

+1

Должна ли сама точка быть необязательной? Если требуется, по крайней мере, 1 цифра после нее, если она присутствует? –

+0

@JustinMorgan Хотя я подтвердил ваш комментарий, указав необязательную десятичную точку в зависимости от того, есть ли после нее цифры, если вы думаете об этом, имея одиночную десятичную точку, технически не делает недействительной запись как допустимое число, если OP решает построить его/ее приложение таким образом. –

ответ

0

Попробуйте это:

/^[0-9]{8}[.][0-9]{0,2}\b/g 

основном означает «ровно 8 цифр перед точкой, и до 2-х знаков после запятой». Кроме того, если вы хотите, чтобы некоторые регулярное выражение стенографии, вы можете использовать \d, который ускользает цифры

/^\d{8}[.]\d{0,2}\b/g 

Кроме того, это было не ясно, в вашем вопросе: вы хотите, чтобы соответствовать две цифры после запятой, если пользователь вводит 3 или больше персонажей? Если да, то удалите \b часть, и она будет работать для вас

0

Использование

/^[0-9]{8}[.]([0-9]{2})?$/ 

Это должно убедиться, что у вас есть 8 цифр перед запятой и ровно 0 или 2 цифры после запятой.

0

Это походит на то, что вы действительно хочу это:

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

Вы также можете написать это:

/^\d{8}(\.\d\d?)?$/ 

Эта модель делает дот необязательными, и если он присутствует, требуется одна или две цифры после него. \d является сокращением для [0-9] (они не идентичны во всех вариантах регулярных выражений, но они находятся в JavaScript).

Как вы его написали, ваш шаблон требует десятичной точки, даже если нет десятичных цифр. Таким образом, 12345678 потерпит неудачу, а 12354678. пройдет. Это, вероятно, не то, что вы хотите; на самом деле, я сомневаюсь, что вы считаете, что второе число действительно.

1

Попробуйте это!

^[\d]{1,8}([\.|\,]\d{1,2})?$ 

С уважением ..

Смежные вопросы