2017-01-03 6 views
1

Я использую код регулярного выражения для полных имен в JavaScript, и шаблон выглядит так: /(\w)\s(\w)/. Проблема в том, что этот шаблон принимает числа, которых я не буду в имени пользователя. Итак, мне нужен шаблон, который принимает пробел после первого имени и принимает второе имя после пробела и имеет ограничение в 30 символов, но не принимает числа. Я не знаю, как создать шаблон регулярного выражения, чтобы любая помощь была оценена.Javascript Fullname Regex Issue

Это то, что код выглядит сейчас:

if(name.match(/(\w)\s(\w)/)){ 
     flagOne = true; 
    } 
+4

см. [Регулярное выражение для первого и последнего имени] (http://stackoverflow.com/questions/2385701/regular-expression-for-first-and-last-name) – gaetanoM

+2

Имейте посмотрите на этот вопрос: http://stackoverflow.com/questions/2385701/regular-expression-for-first-and-last-name –

ответ

1

Вы можете использовать следующий шаблон, чтобы соответствовать только буквенные символы (быть в курсе, что вы сейчас не позволяя специальные символы, такие как çöäüèéà или знаки препинания как ' или -):

/^([A-Za-z]+?)\s([A-Za-z]+?)$/ 

длина полной строки не может быть измерена в этой форме, но может быть легко считаны с помощью JavaScript:

name.length; 

Вот пример в JavaScript:

var name = "Test Name"; 
if(name.match(/^([A-Za-z]+?)\s([A-Za-z]+?)$/) && name.length <= 30) { 
    console.log("name is valid."); 
} 

Как @gaetanoM pointet в комментариях, вы также можете использовать более сложные регулярные выражения, как это описано в этом answer.