diff --git a/src/main/resources/static/js/helpers.js b/src/main/resources/static/js/helpers.js index 369db8140c287809ac41dc49e63c14b9288330df..24aafcf8e4fd12b1da0c6aa31b682bf8c4f45924 100644 --- a/src/main/resources/static/js/helpers.js +++ b/src/main/resources/static/js/helpers.js @@ -1,8 +1,9 @@ -NUMBER_REGEX = new RegExp("^\\d+$"); +REGEX_NUMBER = new RegExp("^\\d+$"); +REGEX_NUMBER_GREATER_ZERO= new RegExp("^[1-9]\\d*$"); -function validateNumber(text, ID, hiddenID, message) +function validateNumber(text, ID, hiddenID, message, regex) { - if(text.match(NUMBER_REGEX) == null) + if(text.match(regex) == null) { addTooltip(ID, message); if(hiddenID != null) diff --git a/src/main/resources/static/js/settings.js b/src/main/resources/static/js/settings.js index 4b1047b780fc0ba2867a86b243e3f241cab652bb..24022a6946d6308483131c97d0ab6a28c4ddda54 100644 --- a/src/main/resources/static/js/settings.js +++ b/src/main/resources/static/js/settings.js @@ -22,7 +22,7 @@ $(document).ready(function() { autoBackupDays.on('change keydown paste input', function() { - validateNumber(autoBackupDays.val(), 'settings-backup-auto-days', "hidden-settings-backup-auto-days", numberValidationMessage); + validateNumber(autoBackupDays.val(), 'settings-backup-auto-days', "hidden-settings-backup-auto-days", numberValidationMessage, REGEX_NUMBER_GREATER_ZERO); }); } @@ -31,7 +31,7 @@ $(document).ready(function() { autoBackupFilesToKeep.on('change keydown paste input', function() { - validateNumber(autoBackupFilesToKeep.val(), "settings-backup-auto-files-to-keep", "hidden-settings-backup-auto-files-to-keep", numberValidationMessageZeroAllowed); + validateNumber(autoBackupFilesToKeep.val(), "settings-backup-auto-files-to-keep", "hidden-settings-backup-auto-files-to-keep", numberValidationMessageZeroAllowed, REGEX_NUMBER); }); } @@ -45,8 +45,8 @@ function validateForm() let autoBackupCheckbox = document.getElementsByName("autoBackupActivated")[0]; if(autoBackupCheckbox.checked) { - let autoBackupDaysValid = validateNumber($('#settings-backup-auto-days').val(), "settings-backup-auto-days", "hidden-settings-backup-auto-days", numberValidationMessage); - let autoBackupFilesToKeepValid = validateNumber($('#settings-backup-auto-files-to-keep').val(), "settings-backup-auto-files-to-keep", "hidden-settings-backup-auto-files-to-keep", numberValidationMessageZeroAllowed); + let autoBackupDaysValid = validateNumber($('#settings-backup-auto-days').val(), "settings-backup-auto-days", "hidden-settings-backup-auto-days", numberValidationMessage, REGEX_NUMBER_GREATER_ZERO); + let autoBackupFilesToKeepValid = validateNumber($('#settings-backup-auto-files-to-keep').val(), "settings-backup-auto-files-to-keep", "hidden-settings-backup-auto-files-to-keep", numberValidationMessageZeroAllowed, REGEX_NUMBER); return autoBackupDaysValid && autoBackupFilesToKeepValid; } diff --git a/src/main/resources/static/js/transactions.js b/src/main/resources/static/js/transactions.js index b24b599c20a16b89f9de20dc26e7da5ec3fad9ef..dd01fb9403a07749b8ef255db419a6d6760c9b23 100644 --- a/src/main/resources/static/js/transactions.js +++ b/src/main/resources/static/js/transactions.js @@ -125,7 +125,7 @@ $(document).ready(function() $(transactionRepeatingModifierID).on('change keydown paste input', function() { // substr(1) removes "#" at the beginning - validateNumber($(this).val(), transactionRepeatingModifierID.substr(1), "hidden-" + transactionRepeatingModifierID.substr(1), numberValidationMessage); + validateNumber($(this).val(), transactionRepeatingModifierID.substr(1), "hidden-" + transactionRepeatingModifierID.substr(1), numberValidationMessage, REGEX_NUMBER); }); } @@ -133,7 +133,7 @@ $(document).ready(function() { $(transactionRepeatingEndAfterXTimesInputID).on('change keydown paste input', function() { - validateNumber($(this).val(), transactionRepeatingEndAfterXTimesInputID.substr(1), null, numberValidationMessage); + validateNumber($(this).val(), transactionRepeatingEndAfterXTimesInputID.substr(1), null, numberValidationMessage, REGEX_NUMBER); // select corresponding radio button let endAfterXTimes = document.getElementById("repeating-end-after-x-times"); @@ -301,7 +301,7 @@ function validateForm(allowEmptyAmount=false) if($(transactionRepeatingModifierID).length) { - if(!validateNumber($(transactionRepeatingModifierID).val(), transactionRepeatingModifierID.substr(1), "hidden-" + transactionRepeatingModifierID.substr(1), numberValidationMessage)) + if(!validateNumber($(transactionRepeatingModifierID).val(), transactionRepeatingModifierID.substr(1), "hidden-" + transactionRepeatingModifierID.substr(1), numberValidationMessage), REGEX_NUMBER) { return false; } @@ -319,7 +319,7 @@ function validateForm(allowEmptyAmount=false) if(endAfterXTimes.checked) { - if(!validateNumber($(transactionRepeatingEndAfterXTimesInputID).val(), transactionRepeatingEndAfterXTimesInputID.substr(1), null, numberValidationMessage)) + if(!validateNumber($(transactionRepeatingEndAfterXTimesInputID).val(), transactionRepeatingEndAfterXTimesInputID.substr(1), null, numberValidationMessage), REGEX_NUMBER) { return false; }