Пользовательская проверка валюты - Magento с использованием validate.js

magento.stackexchange https://magento.stackexchange.com/questions/15243

Вопрос

Я ищу способ для всех для пользовательской валидации валюты, используя 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})?)$/

Попробуйте это вместо стандартных.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с magento.stackexchange
scroll top