Ad ve soyad için normal ifade


126

Web sitesi doğrulama amacıyla ad ve soyad doğrulamasına ihtiyacım var.

İlk ad için, yalnızca harf içermelidir, boşluk içeren birkaç kelime olabilir ve en az üç karakter, ancak en fazla ilk 30 karakter olabilir. Boş dizge doğrulanmamalıdır (örneğin, Jason , jason , jason smith , jason smith , JASON , Jason smith , jason Smith ve jason SMITH ).

Soyadı için, en az üç karakter, ancak en fazla 30 karakterden oluşan tek bir kelime, yalnızca harfler olmalıdır. Boş dizeler doğrulanmamalıdır (örn. Lazslo , Lazslo ve LAZSLO ).


10
Ya 'Jo' gibi isimler?
a'r

6
sadece bir not: son
adlarda

2
Not: Düzenli bir ifade denetleyicisi boş girdileri yok sayar: istediğiniz bu olabilir veya olmayabilir.
Hans Ke st ing

4
Eğer mümkünse, bir ad ve soyad istemek için inanılmaz derecede ikna edici bir nedeniniz yoksa, tek bir "Ad" alanı sağlayın. kalzumeus.com/2010/06/17/…
Chris

Yanıtlar:


196

Aşağıdaki gibi isimleri unutma:

  • Mathias d'Arras
  • Martin Luther King, Jr.
  • Hector Sosis-Hausen

Bu, çoğu şey için hile yapmalı:

/^[a-z ,.'-]+$/i

VEYA Uluslararası isimleri süper tatlı unicode ile destekleyin:

/^[a-zA-ZàáâäãåąčćęèéêëėįìíîïłńòóôöõøùúûüųūÿýżźñçčšžÀÁÂÄÃÅĄĆČĖĘÈÉÊËÌÍÎÏĮŁŃÒÓÔÖÕØÙÚÛÜŲŪŸÝŻŹÑßÇŒÆČŠŽ∂ð ,.'-]+$/u


4
Ben kaçacağını özel karakterler bu regexp'lere - özellikle .(ondalık nokta / nokta / nokta) o regexp'in joker =) beri
Joel Purra

31
Olası tüm ulusal karakterleri doğrulayamazsınız. Örneğin, Macarca karakterler őŐűŰ, Lehçe karakterler de eksik, łŁbirkaç Litvanyaca ve Letonca karakterden bahsetmiyorum bile. Aksine, egzotik karakterleri /^[a-z ,.'-]+$/iaksansız versiyona dönüştüren bir kitaplık bulmaya çalışın, ardından normal ifadeyi yazın.
gaborsch

70
Yani 陳大文burada geçerli bir isim değil mi?
Alvin Wong

16
Unicode için /^[\p{L}'][ \p{L}'-]*[\p{L}]$/u, ancak oldukça bağışlayıcı kullanın .
Frederik Krautwald

4
İfadeden sonraki i değiştiricisi büyük / küçük harf kullanımını göz ardı ettiğinden, AZ'nin orijinal örneğe dahil edilmesi gerekmez.
mhanney

74

Ad ve soyad formatıyla ilgili yanlış varsayımlarda bulunuyorsunuz. Adın boş olup olmadığını kontrol etmenin dışında, muhtemelen hiç doğrulamamak daha iyidir.


bir yorum olmalıydı.
Dementic

32

Tüm bu cevapların üzerinden geçtikten sonra, çoğu dili destekleyen ve yalnızca kelime karakterlerine izin veren küçük bir normal ifade oluşturmanın bir yolunu buldum. Kısa çizgiler, boşluklar ve kesme işaretleri gibi bazı özel karakterleri bile destekler. Python'da test ettim ve aşağıdaki karakterleri destekliyor:

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

Desteklenen karakterler:

abcdefghijklmnopqrstwxyz
ABCDEFGHIJKLMNOPQRSTUVWXYZ
áéíóúäëïöüÄ'
陳大文
łŁőŐűŰZàáâäãåąčćęèéêëėįìíîïłńòóôöõøùúûüųū
ÿýżźñçčšžÀÁÂÄÃÅĄĆČĖĘÈÉÊËÌÍÎÏĮŁ
ŃÒÓÔÖÕØÙÚÛÜŲŪŸÝŻŹÑßÇŒÆČŠŽ.-
ñÑâê都道府県Федерации
আবাসযোগ্য জমির걸쳐 있는

2
Tüm cevaplar dışında bu bir 4. ng kullanarak bir cazibe gibi çalıştı
Deniss M.

1
Normal ifadeniz 2 karakterlik dizide başarısız oluyor. Sanırım bu ^[\w'\-,.]*[^_!¡?÷?¿\/\\+=@#$%ˆ&*(){}|~<>;:[\]]*$
TKA

Ulusal karakterler desteklenir ancak ilk pozisyonda desteklenmez. İfadeyi şu şekilde değiştirirdim^[^0-9_!¡?÷?¿/\\+=@#$%ˆ&*(){}|~<>;:[\]]{2,}$
TOUDIdel

18

Adlarla ilgilenmek için özel bir normal ifade oluşturdum:

Bu tür isimleri denedim ve mükemmel çalıştığını buldum

  1. John Smith
  2. John D'Largy
  3. John Doe-Smith
  4. John Doe Smith
  5. Hector Sosis-Hausen
  6. Mathias d'Arras
  7. Martin Luther King
  8. Ai Wong
  9. Chao Chang
  10. Alzbeta Bara

RegEx'im şuna benzer:

^([a-zA-Z]{2,}\s[a-zA-Z]{1,}'?-?[a-zA-Z]{2,}\s?([a-zA-Z]{1,})?)

MVC4 Modeli:

[RegularExpression("^([a-zA-Z]{2,}\\s[a-zA-Z]{1,}'?-?[a-zA-Z]{2,}\\s?([a-zA-Z]{1,})?)", ErrorMessage = "Valid Charactors include (A-Z) (a-z) (' space -)") ]

Lütfen \\kaçış karakterlerinin çiftine dikkat edin

RegEx'te yeni olanlarınız için bir açıklama eklemeyi düşündüm.

^               // start of line
[a-zA-Z]{2,}    // will except a name with at least two characters
\s              // will look for white space between name and surname
[a-zA-Z]{1,}    // needs at least 1 Character
\'?-?           // possibility of **'** or **-** for double barreled and hyphenated surnames
[a-zA-Z]{2,}    // will except a name with at least two characters
\s?             // possibility of another whitespace
([a-zA-Z]{1,})? // possibility of a second surname

Birkaç ismi, ardından isim olmayan birkaç şeyi test eden bir birim testim var. İsimsizler listesinde ilk girdi olarak 'test jetonu' vardır. Bu onunla eşleşiyor.
Rob

Neredeyse aradığım şey buydu. Sanırım (belki de yanlış bir şekilde) Fransız bir adamsın. Ve Fransızcada karşılaşabileceğiniz bir durum ele alınmıyor: Jean-Pierre, Marie-Charlotte vb. Gibi bestelenmiş isimler ... Reg exp'de yeniyim ama sanırım a -? Soyadınız için yaptığınız gibi, ilk 2 kelime arasında işi yapabilirdi.
Linpter

Merhaba Linpter, Fransızca değil, ancak Fransız bir adım var. Evet. Bunu test etmedim, ancak ilk [] içine - ekleyebilmelisiniz, bu yüzden değiştirin: ^ ([a-zA-Z] {2,} \ s [a-zA-z] {1,} ' ? -? [a-zA-Z] {2,} \ s? ([a-zA-Z] {1,})?) KİME: ^ ([a-zA-Z -] {2,} \ s [a-zA-z] {1,} '? -? [a-zA-Z] {2,} \ s? ([a-zA-Z] {1,})?)
Francois Muller

16

Aradım, araştırdım, oynadım ve onunla oynadım ve mükemmel olmasa da, diğerlerinin tek bir değişken olarak sağlanan ad ve soyadları doğrulama girişiminde bulunmasına yardımcı olabilir.

Benim durumumda, bu değişken $ isimdir.

PHP'm için aşağıdaki kodu kullandım:

    if (preg_match('/\b([A-Z]{1}[a-z]{1,30}[- ]{0,1}|[A-Z]{1}[- \']{1}[A-Z]{0,1}  
    [a-z]{1,30}[- ]{0,1}|[a-z]{1,2}[ -\']{1}[A-Z]{1}[a-z]{1,30}){2,5}/', $name)  
    # there is no space line break between in the above "if statement", any that   
    # you notice or perceive are only there for formatting purposes.  
    # 
    # pass - successful match - do something
    } else {
    # fail - unsuccessful match - do something

RegEx'i kendim öğreniyorum ama RegEx dostum tarafından sağlanan kod için açıklamaya sahibim.
İşte burada:

Bir kelime sınırında pozisyon iddia et "\ b"

Aşağıdaki normal ifadeyi eşleştirin ve eşleşmesini 1
«([AZ] {1} [az] {1,30} [-] {0,1} | [AZ] {1} [- \ '] { 1} [AZ] {0,1} [az] {1,30} [-] {0,1} | [az] {1,2} [- \ '] {1} [AZ] {1} [ az] {1,30}) {2,5} »

2 ila 5 kez, olabildiğince çok, gerektiği kadar geri vermek (açgözlü) «{2,5}»

* BU NOTUN ÇÖZÜMLERİNİ ANLAMAK İÇİN BURADA BAZI YARDIMA İHTİYACIM VAR *

Not: Yakalama grubunun kendisini tekrarladım. Grup yalnızca son yinelemeyi yakalayacaktır. Tüm yinelemeleri yakalamak için tekrarlanan grubun etrafına bir yakalama grubu koyun. «{2,5}»

Aşağıdaki normal ifadelerden biriyle eşleştirin (yalnızca bu başarısız olursa bir sonraki alternatifi dener) «[AZ] {1} [az] {1,30} [-] {0,1}»

"A" ve "Z" "[AZ] {1}» arasındaki aralıkta tek bir karakterle eşleş

Tam olarak 1 kez «{1}»

"A" ve "z" "[az] {1,30}" aralığındaki tek bir karakterle eşleş

Bir ila 30 kez, olabildiğince çok, gerektiği kadar geri vermek (açgözlü) «{1,30}»

Listede bulunan tek bir karakterle eşleştir "-" «[-] {0,1}»

Sıfır ile bir kez arasında, olabildiğince çok, gerektiği kadar geri vermek (açgözlü) «{0,1}»

Veya aşağıdaki 2 numaralı normal ifadeyle eşleştirin (yalnızca bu başarısız olursa sonraki alternatifi dener) «[AZ] {1} [- \ '] {1} [AZ] {0,1} [az] {1,30} [ -] {0,1} »

"A" ve "Z" "[AZ] {1}» arasındaki aralıkta tek bir karakterle eşleş

Tam olarak 1 kez «{1}»

Aşağıdaki listede bulunan tek bir karakterle eşleştirin: «[- \ '] {1}»

Tam olarak 1 kez «{1}»

"-" «-» A 'karakteri «\'» karakterlerinden biri

"A" ve "Z" arasındaki aralıktaki tek bir karakterle eşleştir «[AZ] {0,1}»

Sıfır ile bir kez arasında, olabildiğince çok, gerektiği kadar geri vermek (açgözlü) «{0,1}»

"A" ve "z" "[az] {1,30}" aralığındaki tek bir karakterle eşleş

Bir ila 30 kez, olabildiğince çok, gerektiği kadar geri vermek (açgözlü) «{1,30}»

Listede bulunan tek bir karakterle eşleştir "-" «[-] {0,1}»

Sıfır ile bir kez arasında, olabildiğince çok, gerektiği kadar geri vermek (açgözlü) «{0,1}»

Veya aşağıdaki 3 numaralı normal ifadeyle eşleştirin (bu eşleşmezse tüm grup başarısız olur) «[az] {1,2} [- \ '] {1} [AZ] {1} [az] {1,30} »

"A" ve "z" "[az] {1,2}» aralığındaki tek bir karakterle eşleş

Bir ile 2 kez arasında, olabildiğince çok, gerektiği kadar geri vermek (açgözlü) «{1,2}»

"" Ve "" "« [- \ '] {1} »aralığındaki tek bir karakterle eşleş

Tam olarak 1 kez «{1}»

"A" ve "Z" "[AZ] {1}» arasındaki aralıkta tek bir karakterle eşleş

Tam olarak 1 kez «{1}»

"A" ve "z" "[az] {1,30}" aralığındaki tek bir karakterle eşleş

Bir ila 30 kez, olabildiğince çok, gerektiği kadar geri vermek (açgözlü) «{1,30}»

Bu doğrulamanın, formu dolduran her kişinin bir batı ismine sahip olduğunu ve bunun dünyadaki insanların büyük çoğunluğunu ortadan kaldırabileceğini tamamen varsaydığını biliyorum. Ancak, bunun doğru yönde atılmış bir adım olduğunu düşünüyorum. Belki de bu düzenli ifade, gurular için basit bir şekilde hitap edemeyecek kadar basittir veya belki de aramalarımda yukarıdaki kodu bulamamamın başka bir nedeni vardır. Bunu anlamaya çalışmak için çok uzun zaman harcadım, aşağıdaki test isimlerime bakarsanız, muhtemelen tüm bunlar üzerinde zihnimin ne kadar sisli olduğunu fark edeceksiniz.

Kodu aşağıdaki isimler üzerinde test ettim ve sonuçlar her ismin sağında parantez içinde.

  1. STEVE SMITH (başarısız)
  2. Stev3 Smith (başarısız)
  3. STeve Smith (başarısız)
  4. Steve SMith (başarısız)
  5. Steve Sm1th (Steve Sm'i geçti)
  6. d'Are'den Beaware'ye (Are to Beaware'den geçti)
  7. Jo Blow (geçti)
  8. Hyoung Kyoung Wu (geçti)
  9. Mike O'Neal (geçti)
  10. Steve Johnson-Smith (geçti)
  11. Jozef-Schmozev Hiemdel (geçti)
  12. O Henry Smith (geçti)
  13. Mathais d'Arras (geçti)
  14. Martin Luther King Jr (geçti)
  15. Downtown-James Brown (geçti)
  16. Darren McCarty (geçti)
  17. George De FunkMaster (geçti)
  18. Kurtis B-Ball Basketbol (geçti)
  19. Ahmad el Jeffe (geçti)

Temel isimleriniz varsa, yukarıdaki kodun çalışması için beşe kadar birden fazla olması gerekir, bunlar benim test sırasında kullandıklarına benzer, bu kod sizin için olabilir.

Herhangi bir iyileştirme varsa, lütfen bana bildirin. Henüz erken aşamadayım (RegEx'i anlamanın ilk birkaç ayı.

Teşekkürler ve iyi şanslar Steve


1
"Dördüncü" veya "IV" gibi şeyler bununla çalışır mı?
majidarif

11

İlk isim

"([a-zA-Z]{3,30}\s*)+"

İlk isim kısmının 30 harften kısa olmasına ihtiyacınız varsa, bunu ayrı ayrı kontrol etmeniz gerektiğini düşünüyorum. İfade ".{3,30}"bunu yapmalıdır.

Soyadı gereksinimleriniz şu şekildedir:

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

ama bunları kontrol etmelisiniz. Boşluk içeren çok sayıda soyadı var.


Bu aradaki boşlukları kontrol ediyor mu?
Y_Y

2
O'Connor ne olacak ? Kesme işaretinin de dahil edilmesi gerekiyor.
spaceman

1
Oldukça eksik. Ad, tire içeren "Jean-Claude" olabilir. Soyadı alıntı ile "D'arc" olabilir. Artı, ya ilk isim "François" ise?
bart

1
Ya "Al"? Geçerli ad. Sadece iki harf. Ya Çince, Rusça, Hintçe isimler? Peki ya Avrupa isimleri?
Christian Hujer

bu pek çok ingilizce olmayan veya (latin olmayan?) isimler için işe yaramaz
ihtiyar

7

Maček'in dediği gibi:

Aşağıdaki gibi isimleri unutma:

Mathias d'Arras

Martin Luther King, Jr.

Hector Sosis-Hausen

ve aşağıdaki gibi durumları kaldırmak için:

..Mathias

Martin King, Jr.-

Bu, daha fazla durumu kapsayacaktır:

^([a-z]+[,.]?[ ]?|[a-z]+['-]?)+$

Karakter uzunluğumu sınırlamak istersem, bunun kodu ne olabilir?
G.Abhisek

1
Evet Martin Luther King Jr. ve Kral Henry the Sekizinci bir maç olarak geri dönüyor.
Steve Kinzey

7

Uluslararası Pasaportları (ICAO) doğrulayan uygulama üzerinde çalışıyorum. Yalnızca İngilizce karakterleri destekliyoruz. Çoğu yabancı ulusal karakter Latin alfabesindeki bir karakterle, örneğin è ile e ile temsil edilebilirken, harfe 'e' eklenmesini gerektiren Almanca çift nokta gibi fazladan bir harf gerektiren birkaç ulusal karakter vardır. örneğin ä by ae.

Bu, kullandığımız ad ve soyadlar için JavaScript Regex'idir:

/^[a-zA-Z '.-]*$/

Uluslararası pasaportta maksimum karakter sayısı 31'e kadardır . Normal ifadeye eklemek yerine kelime hata mesajlarını daha iyi hale getirmek için maxlength = "31" kullanırız.

İşte AngularJS 1.6'daki kodumuzdan form ve hata işleme ile bir pasaj:

class PassportController {
  constructor() {
    this.details = {};
    // English letters, spaces and the following symbols ' - . are allowed
    // Max length determined by ng-maxlength for better error messaging
    this.nameRegex = /^[a-zA-Z '.-]*$/;
  }
}

angular.module('akyc', ['ngMessages'])
  .controller('PassportController', PassportController);
 
.has-error p[ng-message] {
  color: #bc111e;
}

.tip {
  color: #535f67;
}
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.6.6/angular.min.js"></script>
<script src="https://code.angularjs.org/1.6.6/angular-messages.min.js"></script>

<main ng-app="akyc" ng-controller="PassportController as $ctrl">
  <form name="$ctrl.form">

    <div name="lastName" ng-class="{ 'has-error': $ctrl.form.lastName.$invalid} ">
        <label for="pp-last-name">Surname</label>
        <div class="tip">Exactly as it appears on your passport</div>
        <div ng-messages="$ctrl.form.lastName.$error" ng-if="$ctrl.form.$submitted" id="last-name-error">
          <p ng-message="required">Please enter your last name</p>
          <p ng-message="maxlength">This field can be at most 31 characters long</p>
          <p ng-message="pattern">Only English letters, spaces and the following symbols ' - . are allowed</p>
        </div>
        
        <input type="text" id="pp-last-name" ng-model="$ctrl.details.lastName" name="lastName"
               class="form-control" required ng-pattern="$ctrl.nameRegex" ng-maxlength="31" aria-describedby="last-name-error" />
      </div>

      <button type="submit" class="btn btn-primary">Test</button>

  </form>
</main>


@danieltakeshi Regex'imi kullanmadın. Bunu kullanın: / ^ [a-zA-Z '.-] * $ /
Alexander Burakevych

5

Kullanırım:

/^(?:[\u00c0-\u01ffa-zA-Z'-]){2,}(?:\s[\u00c0-\u01ffa-zA-Z'-]{2,})+$/i

Ve başka yollarla maksimum uzunluğu test edin


5

Bu normal ifade benim için çalışıyor (Angular 8'de kullanılıyordu):

([a-zA-Z',.-]+( [a-zA-Z',.-]+)*){2,30}

görüntü açıklamasını buraya girin

Varsa geçersiz olacaktır: -

  1. Adın başında veya sonunda herhangi bir boşluk
  2. Semboller var, örneğin @
  3. 2'den az veya 30'dan fazla

Örnek geçersiz Ad (boşluk)

görüntü açıklamasını buraya girin

Örnek geçerli Ad:

görüntü açıklamasını buraya girin


6
Ya 'Björk Guðmundsdóttir'?
Mariusz Jamro

4

Basit olması için şunları kullanabilirsiniz:

(.*)\s(.*)

Bunda sevdiğim şey, soyadının her zaman ilk addan sonra olmasıdır, bu nedenle bu eşleşen grupları bir veritabanına girecekseniz ve adı John M. Smith ise, 1. grup John M. 2. grup Smith olacak.


2
^\p{L}{2,}$

^ bir satırın başındaki konumu belirtir.

\ p {L} herhangi bir dilden herhangi bir harfle eşleşir

{2,} Nicelik belirteci - Mümkün olduğunca çok sayıda 2 ile sınırsız kez eşleşir ve gerektiği kadar geri verir (açgözlü)

$ bir satırın sonundaki konumu belirtir

Bu nedenle, sayılar veya diğer karakterler olmadan en az 2 harf (veya simge) içeren herhangi bir dilde bir ad olmalıdır.


've - gibi bazı karakterlerin isimlerde geçerli olduğunu unutmayın.
Mathijs Segers

1

Dolayısıyla, müşteriyle bu çılgın normal ifadeyi oluşturuyoruz:

(^$)|(^([^\-!#\$%&\(\)\*,\./:;\?@\[\\\]_\{\|\}¨ˇ“”€\+<=>§°\d\s¤®™©]| )+$)

1

Adlar ve soyadlar için gerçekten aramanız gereken 2 şey var:

  1. uzunluk
  2. içerik

İşte normal ifadem:

var regex = / renew[A-Za-z-,]{3,20}?=.*\d)/

1. Uzunluk

Burada {3,20}, dizenin uzunluğunu 3 ile 20 karakter arasında sınırlar.

2. İçerik

Köşeli parantezler [A-Za-z] arasındaki bilgiler büyük ve küçük harf karakterlere izin verir. Sonraki tüm sembollere (- ,.) de izin verilir.


1

Kullandığım şey bu.

Bu normal ifade yalnızca başlangıç ​​karakterlerinden minimum karakter içeren adları kabul eder A-Z a-z ,space and -.

İsimler örneği:

Ionut Ionete, Ionut-Ionete Cantemir, Ionete Ionut-Cantemirm Ionut-Cantemir Ionete-Second

Adın karakter sınırı 3'tür. Bunu değiştirmek istiyorsanız, {3,} 'yi {6,} olarak değiştirin.

([a-zA-Z\-]+){3,}\s+([a-zA-Z\-]+){3,}

2
Peki ya ä å ö Ä Å Ö vb? İsveçli isimlerde çok yaygındır. O'Conner soyadı da başarısız olacak ve çift ​​namlulu isimler de sorun yaratacak. Bu kadar geçerli isimleri olan insanlar için bu çok sinir bozucu olacaktır.
Wilt

O'Connor gibi isimlerdeki kesme işareti ne olacak?
Fogmeister


0

Aşağıdaki ifade, UTF-16 tarafından desteklenen herhangi bir dilde çalışacak ve adda en az iki bileşen olmasını sağlayacaktır (yani ilk + soyadı), ancak aynı zamanda herhangi bir sayıda ikinci ada da izin verecektir.

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

Bu yazının yazıldığı sırada diğer cevapların hiçbiri bu kriterlerin tamamını karşılamıyor gibi görünüyor. En ^\p{L}{2,}$yakın olanı bile yetersiz kalır çünkü U+FEFF(Sıfır Genişlik Bölünmez Boşluk) gibi "görünmez" karakterlerle de eşleşir .


regexr.com için javascript'i geçmez 1) uyarı unicode özelliği tüm tarayıcılarda desteklenmeyebilir. 2) ayrıca normal ifadede sayılara izin veriyor. örnek: michael dimmittsasd2123123
Michael Dimmitt

0

Daha önce burada yayınladığım gibi, maksimum uyumluluk için bu çözümleri deneyin :

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

Bu benim için işi yapıyor gibi görünüyor:

[\S]{2,} [\S]{2,}( [\S]{2,})*

-1

Php'de preg_match kullanan basit bir işlev

<?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');
?>


-2

Adın tamamının 3 ile 30 karakter arasında olmasını ve tek tek kelimelerde kısıtlama olmaksızın şunu deneyin:

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

É, è, à, ï gibi tüm yabancı harfleri hariç tuttuğuna dikkat edin.

Her bir kelimeye 3 ila 30 karakterlik sınırın uygulanmasını istiyorsanız, Jens regexp işi yapar.


-2
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; 
} 
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.