Тема существует, но я не понимаю здесь: (Я новичок)

Проверьте, соответствует ли строка регулярному выражению в JS

На самом деле, у меня есть форма name, при проверке я бы хотел, чтобы пользователь не вводил цифры или символы.

function validation()
{
    const name = document.getElementById('name').value;

    if(!name){
        document.getElementById('nameError').innerHTML = " ** Empty ! ";
        return false;
    }


}
<form action="#" onsubmit="return validation()" >
  <br>
  <label>Name </label>
  <br>
  <input type="text" name="name" id="name" placeholder="Your name">
  <br>
  <span id="nameError"></span>
  <br>
  <input type="submit" value="ok">
</form>

Большое спасибо за вашу помощь.

-4
alain 1 Июн 2020 в 14:17

3 ответа

Лучший ответ
function validation() {
  const name = document.getElementById('name').value;

  if (!name) {
    document.getElementById('nameError').innerHTML = ' ** Empty ! ';
    return false;
  }

  if (!/^[a-zA-Z]+$/.test(name)) {
    document.getElementById('nameError').innerHTML = ' ** No number or symbol ! ';
    return false;
  }
}
<form action="#" onsubmit="return validation()" >
  <br>
  <label>Name </label>
  <br>
  <input type="text" name="name" id="name" placeholder="Your name">
  <br>
  <span id="nameError"></span>
  <br>
  <input type="submit" value="ok">
</form>
3
Treast 1 Июн 2020 в 11:21

В вашей функции проверки вы можете проверить, содержит ли имя переменной только символы, используя регулярное выражение.

Пожалуйста, проверьте фрагмент ниже:

function validation() {
    const letters = /^[A-Za-z]+$/;
    const name = document.getElementById('name').value;
    if (name.match(letters)) {
        // contains only characters
    } else {
        // contains non-character values
    }
}
2
kskashyap94 1 Июн 2020 в 11:24

Пытаться

if(/^([a-zA-Z ]+)$/.test(name) === false) {
 ... // Your error handle code
}
1
Rafik Farhad 1 Июн 2020 в 12:25