首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么mb_ereg()不检测阿拉伯字符?

为什么mb_ereg()不检测阿拉伯字符?
EN

Stack Overflow用户
提问于 2013-10-02 15:46:40
回答 1查看 518关注 0票数 0

我有一个来自PHP.net的检测阿拉伯语的例子。为什么不动呢?

代码语言:javascript
复制
$text = 'بيتر هو صبي.'; // arabic
//$text = 'פיטר הוא ילד.'; // hebrew

mb_regex_encoding('UTF-8');

if(mb_ereg('[\x{0600}-\x{06FF}]', $text)) // arabic range
//if(mb_ereg('[\x{0590}-\x{05FF}]', $text)) // hebrew range
{
    echo "Text has some arabic/hebrew characters.";
}
else
{
    echo "Text doesnt have arabic/hebrew characters.";
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-10-02 15:53:43

您不应该依赖字符范围来检测阿拉伯字符。您可以直接使用\p{Arabic}检测阿拉伯字母:

以下各项运作良好:

代码语言:javascript
复制
$text = 'بيتر هو صبي.'; // arabic
//$text = 'פיטר הוא ילד.'; // hebrew
if (preg_match('~\p{Arabic}~u', $text))
    echo "Text has some arabic/hebrew characters.";
else
    echo "Text doesnt have arabic/hebrew characters.";

输出:

代码语言:javascript
复制
Text has some arabic/hebrew characters.
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19141075

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档