思想和PHP正则判断中国UTF-8或GBK的具体实现
复制代码代码如下所示:
PHP编程;
如果( / ^ { u4e00 - u9fa5 } + $ /。试验(STR)){
警报(所有的字符串都是中文);
其他{ }
警报(该字符串不全是中文);
}
/ / PHP,十六是 x.then表示,代码转换成以下:
PHP编程;
如果(preg_match( / ^ { x4e00 - x9fa5 } + $ /
打印(所有的字符串都是中文);
{人}
打印(这个字符串不全是中文);
}
这似乎不对,判断的结果是正确的。然而,如果str是改规划,原来的字符串是不是所有的中国人,这似乎是不够准确的。重要的是:咨询发现,{ x4e00 - x9fa5 }这件事,其实做一个{ x4e00 - x9fa5 }定期集中解读PHP,是概念、性质和 x {六}集团而言,一个16进制数的表达,注意六可以1-2人,也可以是4,但如果是4,要加括号,同时,如果它大于x { }进制FF,你必须使用或非法的错误修正
可以在网上找到,普通的全宽度:^ { X80 - xff } * ^ /,你不能增加支架
{ u4e00 - u9fa5 }可以匹敌中国,但PHP不支持
但为什么它不同于范围 x4e00 - x9fa5在JS提供的,因为 X代表十六级的数据所以我把它改成了较低的代码,我发现它非常准确:
复制代码代码如下所示:
PHP编程;
如果(preg_match( / ^ { x { 4e00 } - x { 9fa5 } } + $ / U
打印(所有的字符串都是中文);
{人}
打印(这个字符串不全是中文);
}
知道最后正确表达汉字的正则表达式匹配在UTF-8编码的PHP / ^ { x { 4e00 } - x { 9fa5 } } + $ / U,
参考以上文章的测试代码的以下部分(将下列代码复制到php文件)
复制代码代码如下所示:
< PHP
美元($ _get行动=装饰整套{ });
如果($ = 子)
{
$str = $ _post { 'dir};
(如果)!preg_match( / ^ {。Chr(0xA1)- CHR(0xff)。a-za-z0-9_ } + $ / / ,$str)GB2312汉字字母数字下划线)和正则表达式
如果(!preg_match( / ^ { x { 4e00 } - x { 9fa5 } a-za-z0-9_ } + $ / U
{
回声你输入{ ,} $结构包含非法字符;
}
其他的
{
回声你输入{ ,} $结构是完全合法的,通过!;
}
}
>
复制代码代码如下所示:
输入字符(数字,字母,汉字,下划线):
GBK:preg_match(。CHR / ^ {(0xA1)。-。CHR(0xff)。a-za-z0-9_ } + $ /