Jump to content
php.lv forumi

regexp un negatīvie skaitļi


ebw

Recommended Posts

sveiki!

gribēju uzjautāt par vienu lietu.

ir textfield kurā tiek ievadīts kautkāds skaitlis.

uzliku tam textfieldam onkeypress f-u lai tur var ievadīt tikai 0-9 un - (mīnus zīmi), kā arī delimiterus (lai būtu no "12000" atdalītāji "12'000").

 

taču sanāk tā, ka users var ievadīt "-125-45-4-45-00", bet vajadzētu būt tikai mīnus zīmei vienreiz - sākumā.

 

tad nu es domāju kā varētu teiksim uz onblur iztīrīt visus liekos mīnusus. laikam vispareizāk būtu ar regexpiem.

taču netieku skaidrībā kā lai visus novāc izņemot pirmo "-".

atradu kautko līdzīgu (taču no regexpiem diezgan tumša bilde)

str.replace(/[^0-9a-z]|"-"/gi,"");

 

vai vispār var tā uzrakstīt lai viņš novāc visus liekos mīnusus?

paldiess!

Link to comment
Share on other sites

Man kaut kā nepatīk cenšanās labot lietotāja pieļautās kļūdas - labāk taisi, ka forma bļauj, ja nav kaut kas labi. Vai arī vienkārši neļauj ievadīt nepareizus simbolus.

 

Labāk neļauj vispār ievadīt vairāk par vienu "-". Kā arī neļauj ievadīt "-", ja tas nav pirmais simbols.

 

Uz keypress eventa uzliec, lai čeko, kas nospiests. Ja nospiests "-" un stringā jau eksistē "-", tad return false.

 

Tāpat arī šajā keypressā vari ielikt lai ļauj ievadīt tikai ciparus.

 

Un beigu beigās pie submit pārbaudi vai atbilst regexpam.

 

Pagūglē http://www.google.lv/search?hl=lv&q=ev...oard+javascript

Link to comment
Share on other sites

1.) kam tev delimeteri !? (tie pārsvarā tikai datu attēlošanai vajadzīgi)

2.) kam tev JS mistiskās pārbaudēs? (čeko on-submit - tāpat tas IR obligāts pasākums)

 

man liekas vienkāršākais ir uzticēties JS type-castingam.

 

function cleanNumber(iNum) {
iNum = iNum.replace(",","");
iNum = iNum.replace(' ','');
iNum = parseFloat(iNum);

return iNum;
}

 

 

Un beigās:

text onchange="this.value = cleanNumber(this.Value);"

 

Ja raustās kursos, tad nezinu ko lai tur iesāk.. visticamāk google jāpameklē JS-libi ar maskām (ir tādi)

Edited by Delfins
Link to comment
Share on other sites

×
×
  • Create New...