Проверка валюты

Помогите со мной пишущий Проверку JavaScript для поля валюты/денег.

Поэтому обеспечьте любые регулярные выражения, если Вы имеете :)

Кроме того, для моего региона не нуждайтесь ни в каких обозначениях денежной единицы как '$' в поле.

Только десятичные числа должны быть включены для проверки как специальные символы., наряду с числами.

25
задан Joe Doyle 30 April 2012 в 21:09
поделиться

2 ответа

Вы можете использовать регулярное выражение:

var regex  = /^\d+(?:\.\d{0,2})$/;
var numStr = "123.20";
if (regex.test(numStr))
    alert("Number is valid");

Если вы не хотите быть столь строгими с десятичными знаками, возможно, вам будет проще использовать унарный ( + ) оператор для преобразования в число, чтобы проверить его действительность:

var numStr = "123.20";
var numNum = +numStr; // gives 123.20

Если числовая строка недействительна, она вернет NaN (не число), что вы можете проверить для легко:

var numStr = "ab123c";
var numNum = +numStr;
if (isNaN(numNum))
    alert("numNum is not a number");

Это, конечно, позволит пользователю добавлять больше десятичных знаков, но вы можете убрать лишнее, используя number.toFixed (2) , чтобы округлить до 2 десятичных знаков. parseFloat гораздо менее строг к вводу и будет извлекать первое число, которое может найти, из строки, если эта строка начинается с числа, например. parseFloat ("123abc") даст 123 .

41
ответ дан 28 November 2019 в 18:08
поделиться
/[1-9]\d*(?:\.\d{0,2})?/

[1-9] - must start with 1 to 9
\d* - any number of other digits
(?: )? - non capturing optional group
\. - a decimal point
\d{0,2} - 0 to 2 digits

, это работает для вас? или, может быть, parseFloat :

var float = parseFloat( input );
1
ответ дан 28 November 2019 в 18:08
поделиться
Другие вопросы по тегам:

Похожие вопросы: