UTF-8的正则表达式匹配的汉字如何
判断输入内容是否包含非法字符,请查看下列代码编程;
(如果)!preg_match( / ^ { x { 4e00 } - x { 9fa5 } a-za-z0-9_ } + $ / U,$str))
/ / UTF-8中文字符的字母数字下划线的正则表达式
如果(!preg_match( / ^ { x { 4e00 } - x { 9fa5 } } + $ / U
{
回声你输入{ ,} $结构包含非法字符;
}
其他的
{
回声你输入{ ,} $结构是完全合法的,通过!;
}
和
UTF-8匹配:
在Javascript中,判断字符串是中文是非常简单的。
例如:
复制代码代码如下所示:
PHP编程;
如果( / ^ { u4e00 - u9fa5 } + $ /。试验(STR))
{警报(所有的字符串都是中文);
}
否则{警报()该字符串不全是中文;
}
在PHP中,十六是用x表示的。
然后,将代码转换为以下内容:
复制代码代码如下所示:
PHP编程;
如果(preg_match( / ^ { x4e00 - x9fa5 } + $ /
{
打印(所有的字符串都是中文);
}
否则{打印()该字符串不全是中文;
}
这似乎不对,判断的结果是正确的。然而,如果将$ STR改为编程,结果表明字符串并不都是中文,这似乎不够准确。
重要:
抬头发现使的{ x4e00 - x9fa5密集的解释}。
在PHP的规则,{ x4e00 - x9fa5 }实际上是字符和字符集的概念。为了表示一个16二进制数,我们需要注意十六进制可以是1-2位或4位,但是如果4位,我们必须加括号。
同时,如果它大于十六进制,必须与U修饰符一起使用,否则会出错。
可以在网上找到,普通的全宽度:^ { X80 - xff } * ^ /,在这里,不会增加中国括号{ u4e00 - u9fa5 },但PHP不支持,但是,由于十六进制数据 X,为什么提供js里面 x9fa5 x4e00 -是不是一样的
所以我把它改成了较低的代码,我发现它非常准确:
复制代码代码如下所示:
PHP编程;
如果(preg_match( / ^ { x { 4e00 } - x { 9fa5 } } + $ / U
{
打印(所有的字符串都是中文);
}
否则{打印()该字符串不全是中文;
}
众所周知,正确的最终表达的正则表达式匹配中文字符在UTF-8编码在PHP / ^ { x { 4e00 } - x { 9fa5 } } + $ / U指上面的文章,我写了下面的测试代码(以下代码保存为。php文件)。
< PHP美元行动=装饰($ _get整套{ });
如果($ action =子){
$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
/ / UTF-8中文字符的字母数字下划线的正则表达式
{
回声你输入{ ,} $结构包含非法字符;
}
其他的
{
回声你输入{ ,} $结构是完全合法的,通过!;
} }
输入字符(数字,字母,汉字,下划线):
GBK:
复制代码代码如下所示:
preg_match(。CHR / ^ {(0xA1)。-。CHR(0xff)。a-za-z0-9_ } + $ /
以上是如何在PHP中的UTF-8的正则表达式匹配所有的汉字内容,希望大家喜欢。