Autor | Zpráva | ||
---|---|---|---|
Mufna Profil |
#1 · Zasláno: 23. 9. 2009, 15:05:33
Zdravím Vás. Prosím opět o radu ohledně regulárního výrazu. Má kontrolovat jméno zadané do formuláře včetně českých jmen. Počítá to zatím v podstatě jen s anglickými (či jinými, které nezahrnují nějaké další speciální znaky) a českými jmény, zbytek jsem neřešil. Zatím ho mám jednoduše takto:
$regexp = '/^[a-zA-ZáčďéěíňóřšťůúýžÁČĎÉĚÍŇÓŘŠŤŮÚÝŽ]$/'; Co bych potřeboval je to, že chci navíc povolit znaky: 1)mezera 2)tečka - když si někdo třeba potrpí na titulu a zadá např.: "ing. Ten a Ten 3)apostrof - pro jméno typu "O'Connor" apod. Co by nebylo špatný (ale to mi až tak žíly nerve) je ošetření, aby jméno nezačínalo některými znaky - třeba Ě. Když tak teď přemýšlím, tak asi snad vším ostatním jméno začínat může, i když třeba Ů a Ý je docela divočina. Myslím, že jiné znaky pro daný rozsah jazyků není třeba povolovat. |
||
AM_ Profil |
#2 · Zasláno: 23. 9. 2009, 15:16:04
$regexp = '/^[a-zA-ZáčďéěíňóřšťůúýžÁČĎÉĚÍŇÓŘŠŤŮÚÝŽ \\.\\\']+$/'; mezeru escapovat nemusíš, tečku a apostrof ano (apostrof tuším třemi lomítky). Důležité je to + na konci, jinak by ti to bralo jen jméno o délce jednoho znaku :) Pokud nechceš, aby jméno něčím začínalo, tak asi takhle: $regexp = '/^[a-zA-ZáčďéíňóřšťúýžÁČĎÉÍŇÓŘŠŤÚÝŽ \\.\\\'][a-zA-ZáčďéěíňóřšťůúýžÁČĎÉĚÍŇÓŘŠŤŮÚÝŽ \\.\\\']*$/'; |
||
Mufna Profil |
#3 · Zasláno: 23. 9. 2009, 15:22:12
AM_
$regexp = '/^[a-zA-ZáčďéěíňóřšťůúýžÁČĎÉĚÍŇÓŘŠŤŮÚÝŽ \\.\\\']+$/'; Není tam tohle lomítko už navíc ? Nemá to být bez něj ? |
||
Jan Tvrdík Profil |
#4 · Zasláno: 23. 9. 2009, 16:43:41 · Upravil/a: Jan Tvrdík
Mufna:
„Není tam tohle lomítko už navíc ? Nemá to být bez něj ?“ Nemyslím si. První lomítko escapuje druhé lomítko a druhé lomítko escapuje tečku. (Akorát si nejsem jist, proč by se apostrof měl escapovat třemi lomítky.) |
||
Mufna Profil |
#5 · Zasláno: 23. 9. 2009, 16:57:07 · Upravil/a: Mufna
Jan Tvrdík
První lomítko escapuje druhé lomítko a druhé lomítko escapuje tečku V obou případech (s jedním lomítkem nebo se dvěma) mi to vypíše, že regulár vypadá stejně, tedy: /^[a-zA-ZáčďéěíňóřšťůúýžÁČĎÉĚÍŇÓŘŠŤŮÚÝŽ \.\'\-]+$/ EDIT: Oproti původnímu výrazu je na konci ještě přidán znak -, což ale na výše uvedené nemá vliv. |
||
Jan Tvrdík Profil |
#6 · Zasláno: 23. 9. 2009, 17:06:52
Mufna:
Omlouvám se, máš pravdu. To lomítko je tam skutečně zbytečně. |
||
Mufna Profil |
#7 · Zasláno: 23. 9. 2009, 17:19:52
Jan Tvrdík
Omlouvám se Nemáš zač se omlouvat. Já reguláry začínám používat až teď a protože do toho zas tak moc nevidím, tak jsem se zde zeptal, takže jsem spíš vděčný, že mi někdo poradí. Ale postupně se člověk učí :-), tak pak začíná diskutovat, jestli to a to je nutné nebo ne. |
||
Časová prodleva: 15 let
|
0