david.marks Posted July 19, 2006 Share Posted July 19, 2006 I am trying to employ a common regex for password verification in PHP 5.0.5. The goal is to simply reject passwords that don't meet the length requirement of 8-25 characters, and that don't have at least one each of numbers, upper case and lower case letters.I grabbed this example from a regex reference site:("^(?=.*\d)(?=.*[a-z])(?=.*[A-Z]).{8,25}$My code looks like this:if (!eregi("^(?=.*\d)(?=.*[a-z])(?=.*[A-Z]).{8,25}$",$password) {//do something}This gives me the following error:"Warning: eregi() [function.eregi]: REG_BADRPT..."The problem seems to be with the ?= lookahead operator. All references suggest this is valid code, but PHP seems to choke on it. Other regex seem to work fine, so I'm at a loss.Can any experts offer any ideas? Thanks in advance.- David Marks Link to comment https://forums.phpfreaks.com/topic/15059-eregi-chokes-on-lookahead/ Share on other sites More sharing options...
effigy Posted July 19, 2006 Share Posted July 19, 2006 You must use preg_* functions in order to use lookarounds. Link to comment https://forums.phpfreaks.com/topic/15059-eregi-chokes-on-lookahead/#findComment-60587 Share on other sites More sharing options...
david.marks Posted July 19, 2006 Author Share Posted July 19, 2006 Excellent! Thank you for the prompt reply.I haven't needed preg_ functions until now. I stumbled around there for a while until I figured out that the expression needed proper delimiters. I am up and running now.Thanks again!! I'd still be lost without your assistance. Link to comment https://forums.phpfreaks.com/topic/15059-eregi-chokes-on-lookahead/#findComment-60604 Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.