|
@@ 1108-1123 (lines=16) @@
|
| 1105 |
|
} |
| 1106 |
|
} |
| 1107 |
|
switch ($patternselect) { |
| 1108 |
|
case 'pcre8': |
| 1109 |
|
/** |
| 1110 |
|
* Uses the same RFC5322 regex on which FILTER_VALIDATE_EMAIL is based, but allows dotless domains. |
| 1111 |
|
* @link http://squiloople.com/2009/12/20/email-address-validation/ |
| 1112 |
|
* @copyright 2009-2010 Michael Rushton |
| 1113 |
|
* Feel free to use and redistribute this code. But please keep this copyright notice. |
| 1114 |
|
*/ |
| 1115 |
|
return (bool)preg_match('/^(?!(?>(?1)"?(?>\\\[ -~]|[^"])"?(?1)){255,})(?!(?>(?1)"?(?>\\\[ -~]|[^"])"?(?1)){65,}@)' |
| 1116 |
|
. '((?>(?>(?>((?>(?>(?>\x0D\x0A)?[\t ])+|(?>[\t ]*\x0D\x0A)?[\t ]+)?)(\((?>(?2)' |
| 1117 |
|
. '(?>[\x01-\x08\x0B\x0C\x0E-\'*-\[\]-\x7F]|\\\[\x00-\x7F]|(?3)))*(?2)\)))+(?2))|(?2))?)' |
| 1118 |
|
. '([!#-\'*+\/-9=?^-~-]+|"(?>(?2)(?>[\x01-\x08\x0B\x0C\x0E-!#-\[\]-\x7F]|\\\[\x00-\x7F]))*' |
| 1119 |
|
. '(?2)")(?>(?1)\.(?1)(?4))*(?1)@(?!(?1)[a-z0-9-]{64,})(?1)(?>([a-z0-9](?>[a-z0-9-]*[a-z0-9])?)' |
| 1120 |
|
. '(?>(?1)\.(?!(?1)[a-z0-9-]{64,})(?1)(?5)){0,126}|\[(?:(?>IPv6:(?>([a-f0-9]{1,4})(?>:(?6)){7}' |
| 1121 |
|
. '|(?!(?:.*[a-f0-9][:\]]){8,})((?6)(?>:(?6)){0,6})?::(?7)?))|(?>(?>IPv6:(?>(?6)(?>:(?6)){5}:' |
| 1122 |
|
. '|(?!(?:.*[a-f0-9]:){6,})(?8)?::(?>((?6)(?>:(?6)){0,4}):)?))?(25[0-5]|2[0-4][0-9]|1[0-9]{2}' |
| 1123 |
|
. '|[1-9]?[0-9])(?>\.(?9)){3}))\])(?1)$/isD', $address); |
| 1124 |
|
case 'pcre': |
| 1125 |
|
//An older regex that doesn't need a recent PCRE |
| 1126 |
|
return (bool)preg_match('/^(?!(?>"?(?>\\\[ -~]|[^"])"?){255,})(?!(?>"?(?>\\\[ -~]|[^"])"?){65,}@)(?>' |
|
@@ 1124-1135 (lines=12) @@
|
| 1121 |
|
. '|(?!(?:.*[a-f0-9][:\]]){8,})((?6)(?>:(?6)){0,6})?::(?7)?))|(?>(?>IPv6:(?>(?6)(?>:(?6)){5}:' |
| 1122 |
|
. '|(?!(?:.*[a-f0-9]:){6,})(?8)?::(?>((?6)(?>:(?6)){0,4}):)?))?(25[0-5]|2[0-4][0-9]|1[0-9]{2}' |
| 1123 |
|
. '|[1-9]?[0-9])(?>\.(?9)){3}))\])(?1)$/isD', $address); |
| 1124 |
|
case 'pcre': |
| 1125 |
|
//An older regex that doesn't need a recent PCRE |
| 1126 |
|
return (bool)preg_match('/^(?!(?>"?(?>\\\[ -~]|[^"])"?){255,})(?!(?>"?(?>\\\[ -~]|[^"])"?){65,}@)(?>' |
| 1127 |
|
. '[!#-\'*+\/-9=?^-~-]+|"(?>(?>[\x01-\x08\x0B\x0C\x0E-!#-\[\]-\x7F]|\\\[\x00-\xFF]))*")' |
| 1128 |
|
. '(?>\.(?>[!#-\'*+\/-9=?^-~-]+|"(?>(?>[\x01-\x08\x0B\x0C\x0E-!#-\[\]-\x7F]|\\\[\x00-\xFF]))*"))*' |
| 1129 |
|
. '@(?>(?![a-z0-9-]{64,})(?>[a-z0-9](?>[a-z0-9-]*[a-z0-9])?)(?>\.(?![a-z0-9-]{64,})' |
| 1130 |
|
. '(?>[a-z0-9](?>[a-z0-9-]*[a-z0-9])?)){0,126}|\[(?:(?>IPv6:(?>(?>[a-f0-9]{1,4})(?>:' |
| 1131 |
|
. '[a-f0-9]{1,4}){7}|(?!(?:.*[a-f0-9][:\]]){8,})(?>[a-f0-9]{1,4}(?>:[a-f0-9]{1,4}){0,6})?' |
| 1132 |
|
. '::(?>[a-f0-9]{1,4}(?>:[a-f0-9]{1,4}){0,6})?))|(?>(?>IPv6:(?>[a-f0-9]{1,4}(?>:' |
| 1133 |
|
. '[a-f0-9]{1,4}){5}:|(?!(?:.*[a-f0-9]:){6,})(?>[a-f0-9]{1,4}(?>:[a-f0-9]{1,4}){0,4})?' |
| 1134 |
|
. '::(?>(?:[a-f0-9]{1,4}(?>:[a-f0-9]{1,4}){0,4}):)?))?(?>25[0-5]|2[0-4][0-9]|1[0-9]{2}' |
| 1135 |
|
. '|[1-9]?[0-9])(?>\.(?>25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9]?[0-9])){3}))\])$/isD', $address); |
| 1136 |
|
case 'html5': |
| 1137 |
|
/** |
| 1138 |
|
* This is the pattern used in the HTML5 spec for validation of 'email' type form input elements. |