Пользовательская проверка валюты - Magento с использованием validate.js
-
16-10-2019 - |
Вопрос
Я ищу способ для всех для пользовательской валидации валюты, используя Native Magento validate.js
У меня есть форма, которая позволяет пользователям добавлять пользовательские цены в текстовое поле. Я использую следующие классы для проверки входов:
validate-digits-range
digits-range-1-10
Проблема в том, что текстовое поле предварительно заполняется знаком валюты £
Так что не пройдет проверку.
Я попытался адаптировать validate-currency-dollar
класс, но тест все еще терпит неудачу
Validation.add('validate-currency-dollar', 'Please enter a valid $ amount. For example $100.00.', function(v) {
// [$]1[##][,###]+[.##]
// [$]1###+[.##]
// [$]0.##
// [$].##
return Validation.get('IsEmpty').test(v) || /^\$?\-?([1-9]{1}[0-9]{0,2}(\,[0-9]{3})*(\.[0-9]{0,2})?|[1-9]{1}\d*(\.[0-9]{0,2})?|0(\.[0-9]{0,2})?|(\.[0-9]{1,2})?)$/.test(v)
});
Кто -нибудь сделал это раньше, может поделиться советом, пожалуйста?
Решение
Я немного изменил регулярное выражение
/^[\$£]?\-?([1-9]{1}[0-9]{0,2}(\,[0-9]{3})*(\.[0-9]{0,2})?|[1-9]{1}\d*(\.[0-9]{0,2})?|0(\.[0-9]{0,2})?|(\.[0-9]{1,2})?)$/
Попробуйте это вместо стандартных.
Не связан с magento.stackexchange