I have the below code in HTML5 for validating some names
<input name="desiredNames" type="text" placeholder="your-site-name" pattern="[a-z0-9\-\.]{3,25}" id="desiredNames">
It works, but I want to add to it an extra checking feature using regex, as follow: 1. the name is not allowed to start with sign period . or sign minus - 2.the name is not allowed to end with sign period . or sign minus -
I don't know how to use ^, $, ? to make these happened. ( I tried a few examples seen in the forums) Also to that html code I have the below js code
(function checkName() {
let wantedNames = document.getElementById('desiredNames');
let form = document.getElementById('form');
let elem = document.createElement('div');
elem.id = 'notify';
elem.style.display = 'none';
form.appendChild(elem);
wantedNames.addEventListener('invalid', function(event){
event.preventDefault();
if ( ! event.target.validity.valid ) {
wantedNames.className = 'invalid animated shake';
elem.textContent = 'Name can contains small letters, numbers, dot . and minus -,but not at the beginning or at the end, ie escu.ionel-74';
elem.className = 'error';
elem.style.display = 'block';
}
});
wantedNames.addEventListener('input', function(event){
if ( 'block' === elem.style.display ) {
wantedNames.className = '';
elem.style.display = 'none';
}
});
})();
Any tips and some good resources for regex patterns?
Thx