我有一个检查给定网址是否正确的模式,这在英语中运行得非常好,但是当我给它提供波斯语字符时,由于URL无效,它会返回false。
代码使用一些带有混合波斯语字符的URL,但它不能与其他人一起使用!我可以在哪里进行更改或在此模式中添加哪些内容,以便它还可以用英语验证波斯语字符?
// check if URL is valid format
$pattern = '/^(([\w]+:)?\/\/)?(([\d\w]|%[a-fA-f\d]{2,2})+(:([\d\w]|%[a-fA-f\d]{2,2})+)?@)?([\d\w]([-\d\w]{0,253}[\d\w])?\.)+[\w]{2,4}(:[\d]+)?(\/([-+_~.,\d\w]|%[a-fA-f\d]{2,2})*)*(\?(&?([-+_~.,\d\w]|%[a-fA-f\d]{2,2})=?)*)?(#([-+_~.,\/\d\w]|%[a-fA-f\d]{2,2})*)?$/';
$isLink = preg_match($pattern, $url); // Returns true if a link
答案 0 :(得分:0)
您可以将 u修饰符用于波斯语字符,但我不确定,因为您没有使用 u修饰符 <提供任何网址来检查它/ p>
试试这样。
// check if URL is valid format
$pattern = '/^(([\w]+:)?\/\/)?(([\d\w]|%[a-fA-f\d]{2,2})+(:([\d\w]|%[a-fA-f\d]{2,2})+)?@)?
([\d\w]([-\d\w]{0,253}[\d\w])?\.)+[\w]{2,4}(:[\d]+)?(\/([-+_~.,\d\w]|%[a-fA-f\d]{2,2})*)*
(\?(&?([-+_~.,\d\w]|%[a-fA-f\d]{2,2})=?)*)?(#([-+_~.,\/\d\w]|%[a-fA-f\d]{2,2})*)?$/u';
$isLink = preg_match($pattern, $url); // Returns true if a link ^see