регулярное выражение для текстового поля валюты - PullRequest
0 голосов
/ 07 мая 2020

Я использую нижеприведенное регулярное выражение для проверки. Но у меня проблема с этим.

 <input 
    type="text" 
    class="form-control" 
    ng-pattern="/^((?=.*[1-9]|0)(?:\d{1,3}))((?=.*\d)(?:\.\d{3})?)*((?=.*\d)(?:\,\d\d){1}?){0,1}$/" 
    ng-pattern-err-type="amountMinValue"
    ng-model="dividendIncome.dividendIncome"
    id="dividendIncomeVal"
    placeholder="Dividend Income"
    required
/>

Когда я ввожу 322 @ , проверка не работает. Но проверка работает хорошо для @ 322 . Кроме того, пользователь не может ввести ноль.

Как я могу изменить свое регулярное выражение?

1 Ответ

0 голосов
/ 07 мая 2020

Вы можете использовать это регулярное выражение: ^\d+(\.\d{3})*(\,\d+)?$

Данное регулярное выражение соответствует следующему:

10,11
10
1.000.000,11
1.000.000
1.000.000.000.000.000.000.000,00
1.000.000.000.000.000.000.000

И если вам нужно использовать в качестве оператора тысячи запятую ( ,) , тогда вы можете использовать это регулярное выражение: ^\d+(,\d{3})*(\.\d+)?$

Последнее регулярное выражение может соответствовать всем следующим:

10.11
10
1,000,000.11
1,000,000
1,000,000,000,000,000,000,000.00
1,000,000,000,000,000,000,000

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

^([\$€£]*\s*)?\d+(,\d{3})*(\.\d+)?([\s\$€£]*)?$

Имейте в виду, что вам следует обновить список валют, который вы хотите использовать, в скобках. Если, например, вам нужно подтвердить также иену, вам следует обновить скобки с [\$€£] до [\$€£¥] как в начале, так и в конце регулярного выражения.

PS: К сожалению, я не могу помочь вам с Часть angular, так как я не являюсь разработчиком angular, но если вы замените строку:

ng-pattern="/^((?=.*[1-9]|0)(?:\d{1,3}))((?=.*\d)(?:\.\d{3})?)*((?=.*\d)(?:\,\d\d){1}?){0,1}$/"

на эту

ng-pattern="/^\d+(\.\d{3})*(\,\d+)?$/"

, она должна выполнить нужную вам работу.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...