| 1: | <?php |
| 2: | |
| 3: | /** |
| 4: | * Validates based on {ident} CSS grammar production |
| 5: | */ |
| 6: | class HTMLPurifier_AttrDef_CSS_Ident extends HTMLPurifier_AttrDef |
| 7: | { |
| 8: | |
| 9: | /** |
| 10: | * @param string $string |
| 11: | * @param HTMLPurifier_Config $config |
| 12: | * @param HTMLPurifier_Context $context |
| 13: | * @return bool|string |
| 14: | */ |
| 15: | public function validate($string, $config, $context) |
| 16: | { |
| 17: | $string = trim($string); |
| 18: | |
| 19: | // early abort: '' and '0' (strings that convert to false) are invalid |
| 20: | if (!$string) { |
| 21: | return false; |
| 22: | } |
| 23: | |
| 24: | $pattern = '/^(-?[A-Za-z_][A-Za-z_\-0-9]*)$/'; |
| 25: | if (!preg_match($pattern, $string)) { |
| 26: | return false; |
| 27: | } |
| 28: | return $string; |
| 29: | } |
| 30: | } |
| 31: | |
| 32: | // vim: et sw=4 sts=4 |
| 33: |