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: |