如何在正则表达式中向url添加阿拉伯字母
if (!preg_match("^(http|https|ftp)\://[a-zA-Z0-9\-\.]+\.[a-zA-Z]{2,3}(:[a-zA-Z0-9]*)?/?([a-zA-Z0-9\-\._\?\,\'/\\\+&%\$#\=~])*$^",$_POST['url'])) {}
答案 0 :(得分:4)
最好的选择是使用Unicode chracter class。对于你的案子,它将是\p{Arabic}
。但是不要忘记你还应该在最后添加Unicode PCRE修饰符/u
。
答案 1 :(得分:1)
将[a-zA-Z0-9]
替换为[\pL0-9]
,并且不要忘记正则表达式末尾的Unicode PCRE修饰符/u
。
答案 2 :(得分:0)
使用其UTF-8代码:\x123
应该有帮助。
UPD:完整的正则表达式似乎是这样的(对于规则any URL part could contain arabic chars
):
^(http|https|ftp)\://[a-zA-Z0-9\-\.\x0600-\x06FF\x0750-\x077F\xFB50-\xFDFF\xFE70-\xFEFF]+\.[a-zA-Z\x0600-\x06FF\x0750-\x077F\xFB50-\xFDFF\xFE70-\xFEFF]{2,3}(:[a-zA-Z0-9\x0600-\x06FF\x0750-\x077F\xFB50-\xFDFF\xFE70-\xFEFF]*)?/?([a-zA-Z0-9\-\._\?\,\'/\\\+&%\$#\=~\x0600-\x06FF\x0750-\x077F\xFB50-\xFDFF\xFE70-\xFEFF])*$