Я пытаюсь проверить ввод для соответствия окладу или диапазону окладов - проблема в том, что пользователь может ввести несколько возможных значений.
Например, ниже допустимо:
2000
2,000
2000.00
2,000.00
2000 - 4000
2,000-4,000
2,000.00-4,000.00
$2,000.00-$4,000.00
£2,000.00-£4,000.00
Первоначально мы решили разрешить все, кроме букв, но это позволило бы что-то вроде 2! 000, что было бы недопустимым
На данный момент мы получили:
if (preg_match('/^\d|\d,\d+(\.(\d{2}))?$/', $i)) {
return true;
}
Это работает для первых 4 примеров, но допускает такие вещи, как 2a000, что недопустимо - есть ли способ перечислить все, что строка не может содержать (буквы и символы, например, кроме валюты, точки и запятой), но все же затем сделатьсопоставление с образцом, чтобы мы могли проверять числа, например?