|
33 | 33 | /** |
34 | 34 | * Wraps words of all caps (may include numbers) in <span class="caps"> if enabled. |
35 | 35 | * |
36 | | - * Call before style_numbers().Only call if you are certain that no html tags have been |
37 | | - * injected containing capital letters. |
| 36 | + * Call before style_numbers(). Only call if you are certain that no html tags have |
| 37 | + * been injected containing capital letters. |
38 | 38 | * |
39 | 39 | * @author Peter Putzer <github@mundschenk.at> |
40 | 40 | * |
41 | 41 | * @since 5.0.0 |
42 | 42 | */ |
43 | 43 | class Style_Caps_Fix extends Simple_Style_Fix { |
44 | | - /* |
45 | | - // \p{Lu} equals upper case letters and should match non english characters; since PHP 4.4.0 and 5.1.0 |
46 | | - // for more info, see http://www.regextester.com/pregsyntax.html#regexp.reference.unicode |
47 | | - $this->components[ Settings::STYLE_CAPS ] = ' |
48 | | - (?<![\w\-_'.U::ZERO_WIDTH_SPACE.U::SOFT_HYPHEN.']) |
49 | | - # negative lookbehind assertion |
50 | | - ( |
51 | | - (?: # CASE 1: " 9A " |
52 | | - [0-9]+ # starts with at least one number |
53 | | - \p{Lu} # must contain at least one capital letter |
54 | | - (?:\p{Lu}|[0-9]|\-|_|'.U::ZERO_WIDTH_SPACE.'|'.U::SOFT_HYPHEN.')* |
55 | | - # may be followed by any number of numbers capital letters, hyphens, underscores, zero width spaces, or soft hyphens |
56 | | - ) |
57 | | - | |
58 | | - (?: # CASE 2: " A9 " |
59 | | - \p{Lu} # starts with capital letter |
60 | | - (?:\p{Lu}|[0-9]) # must be followed a number or capital letter |
61 | | - (?:\p{Lu}|[0-9]|\-|_|'.U::ZERO_WIDTH_SPACE.'|'.U::SOFT_HYPHEN.')* |
62 | | - # may be followed by any number of numbers capital letters, hyphens, underscores, zero width spaces, or soft hyphens |
63 | 44 |
|
64 | | - ) |
65 | | - ) |
66 | | - (?![\w\-_'.U::ZERO_WIDTH_SPACE.U::SOFT_HYPHEN.']) |
67 | | - # negative lookahead assertion |
68 | | - '; // required modifiers: x (multiline pattern) u (utf8) |
69 | | - */ |
70 | | - |
71 | | - // Servers with PCRE compiled without "--enable-unicode-properties" fail at \p{Lu} by returning an empty string (this leaving the screen void of text |
72 | | - // thus are testing this alternative. |
| 45 | + // PCRE needs to be compiled with "--enable-unicode-properties", but we already depend on that elsehwere. |
73 | 46 | const REGEX = '/ |
74 | 47 | (?<![\w' . self::COMBINING_MARKS . ']) # negative lookbehind assertion |
75 | 48 | ( |
76 | 49 | (?: # CASE 1: " 9A " |
77 | 50 | [0-9]+ # starts with at least one number |
78 | 51 | (?:[' . self::COMBINING_MARKS . '])* |
79 | 52 | # may contain hyphens, underscores, zero width spaces, or soft hyphens, |
80 | | - [A-ZÀ-ÖØ-Ý] # but must contain at least one capital letter |
81 | | - (?:[A-ZÀ-ÖØ-Ý]|[0-9]|[' . self::COMBINING_MARKS . '])* |
| 53 | + \p{Lu} # but must contain at least one capital letter |
| 54 | + (?:\p{Lu}|[0-9]|[' . self::COMBINING_MARKS . '])* |
82 | 55 | # may be followed by any number of numbers capital letters, hyphens, |
83 | 56 | # underscores, zero width spaces, or soft hyphens |
84 | 57 | ) |
85 | 58 | | |
86 | 59 | (?: # CASE 2: " A9 " |
87 | | - [A-ZÀ-ÖØ-Ý] # starts with capital letter |
88 | | - (?:[A-ZÀ-ÖØ-Ý]|[0-9]) # must be followed a number or capital letter |
89 | | - (?:[A-ZÀ-ÖØ-Ý]|[0-9]|[' . self::COMBINING_MARKS . '])* |
| 60 | + \p{Lu} # starts with capital letter |
| 61 | + (?:\p{Lu}|[0-9]) # must be followed a number or capital letter |
| 62 | + (?:\p{Lu}|[0-9]|[' . self::COMBINING_MARKS . '])* |
90 | 63 | # may be followed by any number of numbers capital letters, hyphens, |
91 | 64 | # underscores, zero width spaces, or soft hyphens |
92 | 65 | ) |
|
0 commit comments