2015-01-07 2 views
1

Я использую приведенную ниже JS для ввода имени в LastName, формате FirstName, таком как этот Clark, Michael, и теперь мне также, вероятно, нужно разрешить имена, подобные этому Tim Duncan, Vince Carter, где эти имена вида имеют промежуток между ними.Регулярное выражение для LastName, FirstName с пробелом

function validateName(txtbox) { 
     var name = /^\w{1,20}\, \w{1,20}$/ 
     var check = document.getElementById(txtbox); 
     if (check != null) { 
      if (check.value != "") { 
       if (!name.test(check.value)) { 
        alert('Please enter name in Last Name, First Name format'); 
        document.getElementById(txtbox).focus(); 
        return false; 
       } 
       else { 
        return true; 
       } 
      } 
      else if (name.test(check.value)) { 
       return true; 
      } 
      else if (check.value == "") { 
       return true; 
      } 
     } 
    } 

Есть ли способ достичь этого путем изменения в пределах одного и того же регулярного выражения. Очень ценю предложения и помощь.

+1

20 символов макс? Данные, обработанные Sinclair ZX81? ;-) –

+0

Как насчет 'O'connors' или' Jean-François'? – Toto

+0

@ M42 - Я ищу решение для этого случая и помощь, если можно. – Michael

ответ

3
^[\w ]{1,20}\, [\w ]{1,20}$ 

Это должно сработать для вас.

+0

Это работало на то, что я просил. Думаю, мне следовало бы быть более ясным. У меня также есть такие имена, как «Джордж Тимоти, Клуни» и «Брэдли, Уильям Питт», в которые я мог бы войти. – Michael

+0

@ Майкл имена, которые вы упомянули, должны работать – vks

+0

Я пробовал и не работал для этих случаев. – Michael

3

Возможно, это оправдает ваши ожидания.

/^\s*(\w{1,20} *[^,]*)+,\s+(\w{1,20}\s*)+$/

Однако выше регулярное выражение будет принимать также несколько пробелов до и после имени. Если вы хотите, чтобы только один формат пространства символов, вы должны использовать эти регулярные выражения:

/^(\w{1,20} ?[^,]*)+, (\w{1,20}([^$]|$))+$/

+0

Все в порядке, но мне нужно добавить пробел после запятой, как это «Джордж Тимоти, Клуни» и «Брэдли, Уильям Питт». Также будет увеличен лимит персонажа. – Michael

+0

Я редактировал свой пост. Думаю, вам не нужны ограничения символов для всех входных значений, но только для имен, правильно? –

2

Вы можете использовать html5 рисунок ..

<input type="text" title="Following format: FirstName LastName" pattern="^\s*([\w]{1,20}(|,)?)+\s*,\s+([\w]{1,20} *)+$" />

Смежные вопросы