×

PHP匹配中文

Falcon 2020-03-24 views:
自动摘要

正在生成中……

 Han unification  可以理解 CJK 字符, 而且  Unicode categories  是使用 \p 开始的, 因此可使用 \p{Han}匹配中文字符,下面的例子为匹配普通字符与中文,不包含空格。

<?php
    $str = "小明ahmeng";

    $regex = '/^[-_A-Za-z0-9\p{Han}]+$/u';   // notice spaces are not included

    if (preg_match( $regex, $str)) {
        echo "valid";
    } else {
        echo "invalid";
    }
?>

DEMO

同时,在处理UTF-8编码字符时,记得带上 /u 修饰符 

再来一例:

//split chinese 
function split_ch( $title ) {
	return preg_replace("/\p{Han}+/u",'<span class="zh">$0</span>',$title);
}

echo split_ch('hello中文');   // Output:  hello<span class="zh">中文</span>