Autor | Zpráva | ||
---|---|---|---|
Prkny Profil |
#1 · Zasláno: 7. 7. 2014, 13:28:25
Zdravím,
kontroluji javascriptem formulář. A potřebuji kontrolovat to, zda bylo zadáno číslo v adrese ulice. Pokud nebylo zadáno číslo, vyhoď hlášku. Bohužel se mi to nějak nedaří. Ten regulární výraz jsem našel zde: http://www.regularnivyrazy.info/regularni-vyraz-adresa.html <SCRIPT LANGUAGE="JavaScript"> <!-- function Kontrola () { if (document.formular.ulice.value != ""){ if (/^(.*[^0-9]+) (([1-9][0-9]*)/)?([1-9][0-9]*[a-cA-C]?)$/.test(document.formular.ulice.value)){ alert ("ok."); return true; } else { alert ("chyba"); return false; } } } // --> </SCRIPT> <form action="" method="post" name="formular" onSubmit="return Kontrola();"> Ulice: <input type="text" id="ulice" name="ulice" size="20"><br> <input type="submit" value="Odeslat"> </form> |
||
Jozin Profil |
#2 · Zasláno: 7. 7. 2014, 14:41:45
Zdravím, první věc co vidím, že pokud formuláč nemá vyplněnou ulici, tak odesílání projde. Druhá věc nespoléhej na kontrolu javascriptem, určitě to testuj i potom ve zpracovávajícím skriptu js se dá snadno vypnout. No a teď ke kontrole samotné: regexp na odkazu funguje správně v javascriptu se moc nevyznám, ale řekl bych, že regexp by měl mít delimitery jiné než /, aby neoznačoval lomítko za první částí za konec, použil bych například ~ a další věc, neměl by být regexp v uvozovkách (to je jen má domněnka nejspíš to pravda není), Jozin.
|
||
Prkny Profil |
#3 · Zasláno: 7. 7. 2014, 15:02:17
Děkuji.
Programuji spíše v php a tam už si to nějak ošetřím, ale toto potřebuji dostat do js. Bohužel změna delimiteru a ani uvozovek tu kontrolu neaktivují. Jako by tam nebyla. Nějaký jiný tip? |
||
Prkny Profil |
#4 · Zasláno: 8. 7. 2014, 08:14:13
A nebyl by nápad jak detekovat v řetězci, zda obsahuje číslo?
|
||
Jozin Profil |
#5 · Zasláno: 10. 7. 2014, 08:55:26
A tak jsem si teda řekl, že ti to otestuju a zkusím sestavit:
var rp = RegExp('^(.*[^0-9]+) (([1-9][0-9]*)/)?([1-9][0-9]*[a-cA-C]?)$'); document.body.innerHTML = rp.test(document.formular.ulice.value); |
||
_es Profil |
#6 · Zasláno: 10. 7. 2014, 11:34:11
Prkny:
Ak je vo formulári uvedené „ulica“, tak by sa tam asi mala zadávať ulica a nie ulica a aj niečo ďalšie ako číslo domu. Niektoré obce ani nemajú oficiálne názvy ulíc - majú len čísla domov. |
||
jenikkozak Profil |
#7 · Zasláno: 12. 7. 2014, 00:59:05
Prkny:
„potřebuji kontrolovat to, zda bylo zadáno číslo v adrese ulice“ Tato kontrola není dostatečně univerzální a spolehlivá ze dvou důvodů: - Číslovka může být obsažena v názvu ulice (ulice jmenující se podle dní v roce), - Novostavba nemusí mít uvedeno číslo popisné. Pak sice neslouží jako trvalé bydliště, ale může se použít jako doručovací adresa (na poště se dá doručování do takového objektu domluvit, u přepravních společností se taková informace dá dopsat k neúplné adrese). Záleží na účelu sběru dat. Pravděpodobně ti bude stačit, když budeš pouze kontrolovat vyplnění toho políčka pro případ, že by ho uživatel nedopatřením přeskočil. |
||
_es Profil |
#8 · Zasláno: 12. 7. 2014, 09:39:59
jenikkozak [#7]:
Ešte je možný aj prípad, že adresa je neúplná - bez ulice a čísla domu, no pošta zásielku bez problémov doručí, ak ide napríklad o všeobecne známu budovu v obci. |
||
Časová prodleva: 10 let
|
0