Я пытаюсь проверить формат строки $price на наличие ошибок.
Строка будет начинаться с символа валюты. (Поскольку их так много, я пропущу это, поэтому покажу это ниже как ?)
Итак, ПРАВИЛЬНЫЕ форматы: "?12.34" или "? 2.34" или "?2.34". Неправильные форматы: "1234" / "234".
Итак, прежде всего я проверяю отрицательное соответствие для десятичной дроби, используя глобальный поиск (теперь забавное регулярное выражение). Я пытаюсь проверить ОТРИЦАТЕЛЬНОЕ (т. е. НЕ соответствует) одной или двум цифрам 0-9, десятичной дроби, за которой следуют две цифры 0-9. Я придумал следующий (непроверенный) теоретический шаблон. Поскольку это мое первое сложное регулярное выражение, правильно ли я его понял?
if ($price eq ''){
say'';
say 'You did not enter any price. Try again';
say'';
}
elsif ($price !~ /\./g ){
say'';
say 'Please include a decimal point';
say'';
}
elsif ($price !~ /[0-9]{1,2}\.[0-9]{2}$/){
say'';
say 'Please check the format of price (XX.XX)';
say'';