Autor | Zpráva | ||
---|---|---|---|
DarkMeni Profil |
#1 · Zasláno: 5. 6. 2011, 18:06:02
var Reg = new RegExp("^[a-z0-9\.\_\-]{1,25}@[a-z0-9\.\_\-]{1,25}\.[a-z]{2,4}$","i"); var Result = Reg.test(Value); Toto by mělo souhlasit a vrátit true jen když Value bude: email@server.cz a nebo podobně Ale z nějakého důvodu mi to vesele odsouhlasí i email@servercz nebo email@server a tu tečku ignoruje, jak to? |
||
Witiko Profil |
#2 · Zasláno: 5. 6. 2011, 18:37:48 · Upravil/a: Witiko
DarkMeni:
To bude tím, že ty ten RegExp musíš escapovat dvakrát, jelikož ho předáváš jako textovou literálu. Tzn.: new RegExp("\\.").source === /\./.source Jednoduše využij literálového zápisu regulárních výrazů a pojede ti to jak má: var Reg = /^[a-z0-9\.\_\-]{1,25}@[a-z0-9\.\_\-]{1,25}\.[a-z]{2,4}$/i; var Result = Reg.test(Value); |
||
DarkMeni Profil |
#3 · Zasláno: 5. 6. 2011, 19:07:16
Asi to bylo tím, už to funguje jak má, díky
|
||
Časová prodleva: 5 dní
|
|||
peta Profil |
#4 · Zasláno: 10. 6. 2011, 11:09:45
Kdyztak zkousej na regexp.cz. Nedavno jsem koukal, ze inovovali stranku. Ale na to escapovani tam neupozornuji, uz jsem na to tez parkrat narazil, nekdy jsou nutna i 3 lomitka. A na phpnet byl dokonce jakysi priklad s peti :)
|
||
Witiko Profil |
#5 · Zasláno: 10. 6. 2011, 22:20:20 · Upravil/a: Witiko
peta:
Naštěstí většinou stačí literálový zápis, který omezením řetězců netrpí a zároveň co jsem testoval ho většina implementací i přechroustá rychleji než new RegExp( ... ). |
||
Časová prodleva: 13 let
|
0