регулярное выражение для имени и фамилии - PullRequest
103 голосов
/ 05 марта 2010

В целях проверки веб-сайта мне необходимо подтвердить имя и фамилию.

Для имени оно должно содержать только буквы и может состоять из нескольких слов с пробелами и без букв, как минимум из 3 символов и не более 30 символов.персонажи.Пустая строка не должна проверяться.Т.е.:

Джейсон, Джейсон, Джейсон Смит, Джейсон Смит, Джейсон, Джейсон Смит, Джейсон Смит, Джейсон Смит

Для фамилии это должно быть одно слово, только буквыне менее 3 символов и не более 30 символов.Пустая строка не должна проверяться.ИП: лазсло, лазсло, лазло

Ответы [ 19 ]

2 голосов
/ 28 марта 2014

Это то, что я использую. Это регулярное выражение принимает только имена с минимальным количеством символов, начиная с A-Z a-z ,space and -.

Пример имен: Ionut Ionete, Ionut-Ionete Cantemir, Ionete Ionut-Cantemirm Ionut-Cantemir Ionete-Second

Максимальное количество символов имени - 3, если вы хотите создать это изменение, измените {3,} на {6,}

([a-zA-Z\-]+){3,}\s+([a-zA-Z\-]+){3,}
2 голосов
/ 30 мая 2018
^\p{L}{2,}$

^ устанавливает позицию в начале строки.

\ p {L} соответствует любому виду букв на любом языке

{2,} Quantifier - соответствует от 2 до неограниченного числа раз, столько раз, сколько возможно, возвращая при необходимости (жадный)

$ устанавливает позицию в конце строки

Таким образом, это должно быть имя на любом языке, содержащее как минимум 2 буквы (или символы) без цифр или других символов.

1 голос
/ 30 апреля 2015

Итак, с клиентом мы создаем это сумасшедшее регулярное выражение:

(^$)|(^([^\-!#\$%&\(\)\*,\./:;\?@\[\\\]_\{\|\}¨ˇ“”€\+<=>§°\d\s¤®™©]| )+$)
1 голос
/ 10 октября 2017

Для имен и фамилий есть только две вещи, которые вы должны искать:

  1. Длина
  2. Содержание

Вот мое регулярное выражение:

var regex = /^[A-Za-z-,]]]3,20 rout?=.*\d)/

1. Длина

Здесь {3,20} ограничивает длину строки от 3 до 20 символов.

2. Содержание

Информация в квадратных скобках [A-Za-z] допускает использование прописных и строчных букв. Все последующие символы (- ,.) также допускаются.

0 голосов
/ 08 июня 2019

Попробуйте эти решения для максимальной совместимости, как я уже разместил здесь :

JavaScript:

var nm_re = /^(?:((([^0-9_!¡?÷?¿/\\+=@#$%ˆ&*(){}|~<>;:[\]'’,\-.\s])){1,}(['’,\-\.]){0,1}){2,}(([^0-9_!¡?÷?¿/\\+=@#$%ˆ&*(){}|~<>;:[\]'’,\-. ]))*(([ ]+){0,1}(((([^0-9_!¡?÷?¿/\\+=@#$%ˆ&*(){}|~<>;:[\]'’,\-\.\s])){1,})(['’\-,\.]){0,1}){2,}((([^0-9_!¡?÷?¿/\\+=@#$%ˆ&*(){}|~<>;:[\]'’,\-\.\s])){2,})?)*)$/;

HTML5:

<input type="text" name="full_name" id="full_name" pattern="^(?:((([^0-9_!¡?÷?¿/\\+=@#$%ˆ&*(){}|~<>;:[\]'’,\-.\s])){1,}(['’,\-\.]){0,1}){2,}(([^0-9_!¡?÷?¿/\\+=@#$%ˆ&*(){}|~<>;:[\]'’,\-. ]))*(([ ]+){0,1}(((([^0-9_!¡?÷?¿/\\+=@#$%ˆ&*(){}|~<>;:[\]'’,\-\.\s])){1,})(['’\-,\.]){0,1}){2,}((([^0-9_!¡?÷?¿/\\+=@#$%ˆ&*(){}|~<>;:[\]'’,\-\.\s])){2,})?)*)$" required>

0 голосов
/ 22 мая 2019

Следующее выражение будет работать на любом языке , поддерживаемом UTF-16, и обеспечит наличие минимум двух компонентов в имени (т.е. первый + последний), но будет также разрешить любое количество отчеств.

/^(\S+ )+\S+$/u

На момент написания этой статьи, похоже, ни один из других ответов не соответствовал всем этим критериям. Даже самый близкий ^\p{L}{2,}$ не дотягивает, потому что он также будет соответствовать «невидимым» символам, таким как U+FEFF (пробел нулевой ширины без пробелов).

0 голосов
/ 05 марта 2010

Если вы хотите, чтобы полное имя было от 3 до 30 символов без ограничений на отдельные слова, попробуйте следующее:

[a-zA-Z ]{3,30}

Помните, что исключаются все иностранные буквы как é, è, à, ï.

Если вы хотите, чтобы ограничение от 3 до 30 символов применялось к каждому отдельному слову, Jens regexp выполнит эту работу.

0 голосов
/ 05 марта 2010
var name = document.getElementById('login_name').value; 
if ( name.length < 4  && name.length > 30 )
{
    alert ( 'Name length is mismatch ' ) ;
} 


var pattern = new RegExp("^[a-z\.0-9 ]+$");
var return_value = var pattern.exec(name);
if ( return_value == null )
{
    alert ( "Please give valid Name");
    return false; 
} 
0 голосов
/ 21 августа 2016

Простая функция, использующая preg_match в php

<?php
function name_validation($name) {
    if (!preg_match("/^[a-zA-Z ]*$/", $name) === false) {
        echo "$name is a valid name";
    } else {
        echo "$name is not a valid name";
    }
}

//Test
name_validation('89name');
?>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...