Stickybomb Posted February 16, 2007 Share Posted February 16, 2007 ok i got all my regs, however for some reason some of them test fine with the tester on the RegExLib site, but are not working for my project, i am using the same data here is the code im using these are the reg values $emailreg = "^[a-zA-Z0-9._-]+@[a-zA-Z0-9._-]+\.([a-zA-Z]{2,4})$"; $namereg = "^[A-Za-zÀ-ÖØ-öø-ÿ '\-\.]{1,22}$"; $address1reg = "^\d{1,5}\s[\w0-9][\sa-zA-Z0-9]*[aAvVeEsSrRdDtT]{2,3}\.?\s[nNsSeEwW][\.\s]?[nNsSeEwW][\.]?$"; $address2reg = "^p(ost)?[ |\.]*o(ffice)?[ |\.]*(box)?[ 0-9]*[^[a-z ]]*"; $zipreg = "(^\d{5}$)|(^\d{5}-\d{4}$)"; $phonereg = "^(\(?\d\d\d\)?)?( |-|\.)?\d\d\d( |-|\.)?\d{4,4}(( |-|\.)?[ext\.]+ ?\d+)?$"; $statereg ="^((AL)|(AK)|(AS)|(AZ)|(AR)|(CA)|(CO)|(CT)|(DE)|(DC)|(FM)|(FL)|(GA)|(GU)|(HI)|(ID)|(IL)|(IN)|(IA)|(KS)|(KY)|(LA)|(ME)|(MH)|(MD)|(MA)|(MI)|(MN)|(MS)|(MO)|(MT)|(NE)|(NV)|(NH)|(NJ)|(NM)|(NY)|(NC)|(ND)|(MP)|(OH)|(OK)|(OR)|(PW)|(PA)|(PR)|(RI)|(SC)|(SD)|(TN)|(TX)|(UT)|(VT)|(VI)|(VA)|(WA)|(WV)|(WI)|(WY))$"; this is the code to test them //chnage case $state = strtoupper($state); //check size if(strlen($_POST['chimney_pot_size']) > 2){$sizeflag=1; $size='';} //check email if(!eregi($emailreg, $email)) { $emailflag=1; $email='x'; }else{$email=$_POST['email'];} //check name if(!eregi($namereg, $name)) { $nameflag=1; $name='x'; } //check address1 if(!eregi($address1reg, $address1)) { $address1='x'; } //check address2 if(!eregi($address2reg, $address2)) { $address2='x'; } //check city if(!eregi($namereg, $city)) { $city='x'; } //check state if(!eregi($statereg, $state)) { $state='x'; } //check zip if(!eregi($zipreg, $zip)) { $zip='x'; } //check phone if(!eregi($phonereg, $phone)) { $phone='x'; } i have it set to show an x if its not working This is my test data name=bob marley address1=1234 newport rd. n.w. address2=po box 1234 city=springfield state=ca zip=12345 telephone=(123)-456-7890 the results i am getting name =bob marley address1=x address2=po box 1234 city=springfield state=CA zip=x telephone=x if anyone can help me with this or knows what it is im doing wrong it would help me out alot. thks stickybomb Link to comment https://forums.phpfreaks.com/topic/38825-problem-with-my-regex/ Share on other sites More sharing options...
effigy Posted February 16, 2007 Share Posted February 16, 2007 You're using ereg, not preg, so the shorthands do not work. I recommend switching to preg. Also: - The state should be checked with an array + in_array, not a regex. - Unless your data can end with a new line, use \z instead of $. - Keep in mind that \w includes an underscore (after you switch to preg). - Unless you're capturing the data, use (?:...) instead of (...). Link to comment https://forums.phpfreaks.com/topic/38825-problem-with-my-regex/#findComment-186667 Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.