X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=src%2FUtil%2FStrings.php;h=88dd1d39f81edd151151dac1ba6b7449528dd871;hb=a61ce4fed0eba0c1cee3b96e81be6fa89e96c9f9;hp=b2b710d96f2c59ca86e9a545bb342b88849868d7;hpb=9f49ce885785d7b33102f83b76285cbb91a298ee;p=friendica.git diff --git a/src/Util/Strings.php b/src/Util/Strings.php index b2b710d96f..88dd1d39f8 100644 --- a/src/Util/Strings.php +++ b/src/Util/Strings.php @@ -31,6 +31,18 @@ class Strings return $return; } + /** + * Checks, if the given string is a valid hexadecimal code + * + * @param string $hexCode + * + * @return bool + */ + public static function isHex($hexCode) + { + return !empty($hexCode) ? @preg_match("/^[a-f0-9]{2,}$/i", $hexCode) && !(strlen($hexCode) & 1) : false; + } + /** * @brief This is our primary input filter. * @@ -355,25 +367,25 @@ class Strings */ public static function autoLinkRegEx() { - return '@(?xi) + return '@ (??«»“”‘’.] # Domain can\'t start with a . - [^/\s`!()\[\]{};:\'",<>?«»“”‘’]+ # Domain can\'t end with a . + [^/\s\xA0`!()\[\]{};:\'",<>?«»“”‘’.] # Domain can\'t start with a . + [^/\s\xA0`!()\[\]{};:\'",<>?«»“”‘’]+ # Domain can\'t end with a . \. - [^/\s`!()\[\]{};:\'".,<>?«»“”‘’]+/? # Followed by a slash + [^/\s\xA0`!()\[\]{};:\'".,<>?«»“”‘’]+/? # Followed by a slash ) (?: # One or more: - [^\s()<>]+ # Run of non-space, non-()<> + [^\s\xA0()<>]+ # Run of non-space, non-()<> | # or - \(([^\s()<>]+|(\([^\s()<>]+\)))*\) # balanced parens, up to 2 levels + \(([^\s\xA0()<>]+|(\([^\s()<>]+\)))*\) # balanced parens, up to 2 levels | # or - [^\s`!()\[\]{};:\'".,<>?«»“”‘’] # not a space or one of these punct chars + [^\s\xA0`!()\[\]{};:\'".,<>?«»“”‘’] # not a space or one of these punct chars )* -)@'; +)@xiu'; } /**