I added a custom field for the newsletter subscriber. So total 2 fields for the subscriber form.
I added a custom JS file for the form validation. This “custom-validate-email” work perfectly fine. What I need to do, so that other postal code field “custom-postal-code” can be validate by other rules?
define([
'jquery'
], function ($) {
'use strict';
return function() {
$.validator.addMethod(
'custom-validate-email',
function (value) {
return $.mage.isEmptyNoTrim(value) || /^([a-z0-9-_.+]|[u00A0-uD7FFuF900-uFDCFuFDF0-uFFEF])+(.([a-z0-9-_.+]|[u00A0-uD7FFuF900-uFDCFuFDF0-uFFEF])+)*@([a-z0-9-]|[u00A0-uD7FFuF900-uFDCFuFDF0-uFFEF])+(.([a-z0-9-]|[u00A0-uD7FFuF900-uFDCFuFDF0-uFFEF])+)*.(([a-z]|[u00A0-uD7FFuF900-uFDCFuFDF0-uFFEF]){2,})$/i.test(value);
},
$.mage.__('Please enter a valid email address (Ex: johndoe@domain.com).')
);
}
});
Below doesn’t work for me, I am not good at JS, please help
define([
'jquery'
], function ($) {
'use strict';
return function() {
$.validator.addMethod(
'custom-validate-email',
function (value) {
return $.mage.isEmptyNoTrim(value) || /^([a-z0-9-_.+]|[u00A0-uD7FFuF900-uFDCFuFDF0-uFFEF])+(.([a-z0-9-_.+]|[u00A0-uD7FFuF900-uFDCFuFDF0-uFFEF])+)*@([a-z0-9-]|[u00A0-uD7FFuF900-uFDCFuFDF0-uFFEF])+(.([a-z0-9-]|[u00A0-uD7FFuF900-uFDCFuFDF0-uFFEF])+)*.(([a-z]|[u00A0-uD7FFuF900-uFDCFuFDF0-uFFEF]){2,})$/i.test(value);
},
$.mage.__('Please enter a valid email address (Ex: johndoe@domain.com).')
);
$.validator.addMethod(
'custom-postal-code': [
function (value) {
return /^[a-zA-z]{1}[0-9]{1}[a-zA-z]{1}s[0-9]{1}[a-zA-z]{1}[0-9]{1}$/.test(value);
},
$.mage.__('Please enter a valid postal code (Ex.: A1B 2C3 or A1B2C3).')
);
}
});