Поле ввода валидации Полное имя (Имя, Фамилия) - JavaScript - PullRequest
1 голос
/ 24 апреля 2019

Требуется проверка для полного имени (имя / фамилия - 1 поле ввода).Я новичок в этой сфере и не могу сформулировать правильный синтаксис, может быть, тоже будет работать с регулярным выражением

<form name="myForm" action="#" id="form" onsubmit="return validateForm()" method="POST">
            <div class="field"><span class="input"><i class="fas fa-user-alt"></i>
                    <input type="text" id="name" name="Fullname" placeholder="Full Name" >
                </span>


function validateForm() {
var name= document.getElementById('name').value;
var x = name.indexOf(" ");
var fname = name.substring(0, x);
var lname = name.substring(x).trim();
if ( 17 < fname.value.length < 5 || 4 > lname.value.length > 17 || x.value.length != 1) {
    alert("try again")
    return false;
 }
 alert("OK")
return true;
}

Поле (1 поле) должно содержать 2 слова, которые должны быть от 3 до 20 символов.

РЕДАКТИРОВАТЬ: Кажется, работает .. окончательно!

function input (name) {
  let fullNameArr = name.split('')
  const space = ' '
  let firstName = ''
  if (fullNameArr.includes(space)) {
    for (let i = 0; i < fullNameArr.length; i++) {
      if (!firstName.includes(space)) {
        firstName += fullNameArr[i]
      }
    }
  }
  firstName = fullNameArr.splice(0, firstName.length)
  const lastName = fullNameArr
  if (firstName.length > 3 && firstName.length <= 21 && lastName.length >= 3 && lastName.length <= 20 && lastName.includes(space) === false) {
    console.log(firstName)
    console.log(lastName)
  } else {
    console.log('Invalid Name')
    return false
  }
}
input('Todor Markov')

1 Ответ

1 голос
/ 24 апреля 2019

Ваша модель делает несколько предположений об именах.Наличие имени и фамилии в качестве отдельных полей ввода обычно делается для устранения этого барьера.

С точки зрения UX, если вы не собираетесь иметь отдельные поля, вам потребуется некоторая проверка с подсказкой, которая проверяет, есть ли у пользователя более одного пробела, который предупреждает их, что они должны ввести FirstName LastName.

В представлении проверки регулярных выражений, здесь есть все, чтобы убедиться, что оно действительно.
/^[a-z ,.'-]+$/i.test("Johnny 'Van' Pat-ton Jr.") Нет цифр, но разрешены буквы и специальные символы ,.'-.

...