summaryrefslogtreecommitdiff
path: root/program/include
diff options
context:
space:
mode:
authoralecpl <alec@alec.pl>2010-10-04 13:53:15 +0000
committeralecpl <alec@alec.pl>2010-10-04 13:53:15 +0000
commit9cc93aea7cda73d102c0a0045c66a5360da24b79 (patch)
treee96f1d627a54c2f313d413e38e9d6b3da11437c0 /program/include
parent135f84afa2140fc38348b15898a0912e31fb49c5 (diff)
- Use simplified domain expression for proper handling of domain names in UTF8
Diffstat (limited to 'program/include')
-rw-r--r--program/include/rcube_string_replacer.php8
1 files changed, 4 insertions, 4 deletions
diff --git a/program/include/rcube_string_replacer.php b/program/include/rcube_string_replacer.php
index 1eed1bf3c..0471dd0dc 100644
--- a/program/include/rcube_string_replacer.php
+++ b/program/include/rcube_string_replacer.php
@@ -35,13 +35,13 @@ class rcube_string_replacer
function __construct()
{
- $url_chars = 'a-z0-9_\-\+\*\$\/&%=@#:;';
- $url_chars_within = '\?\.~,!';
+ // Simplified domain expression for UTF8 characters handling
+ $utf_domain = '[^&@"\'\\/\s\r\t\n]+\\.[a-z]{2,5}';
- $this->link_pattern = "/([\w]+:\/\/|\Wwww\.)([a-z0-9\-\.]+[a-z]{2,4}([$url_chars$url_chars_within]*[$url_chars])?)/i";
+ $this->link_pattern = "/([\w]+:\/\/|\Wwww\.)($utf_domain(\S+)?)/i";
$this->mailto_pattern = "/("
."[-\w!\#\$%&\'*+~\/^`|{}=]+(?:\.[-\w!\#\$%&\'*+~\/^`|{}=]+)*" // local-part
- ."@([a-z0-9]([-a-z0-9]*[a-z0-9])?\\.)+[a-z]{2,5}" // domain-part
+ ."@$utf_domain" // domain-part
."(\?\S+)?" // e.g. ?subject=test...
.")/i";
}