PHP 正則表達(dá)式驗(yàn)證中文的問(wèn)題
更新時(shí)間:2009年08月27日 12:20:24 作者:
PHP 正則表達(dá)式驗(yàn)證中文的問(wèn)題,感覺(jué)php不支持perl轉(zhuǎn)義挺討厭的。
$str = '中華人民共和國(guó)123456789abcdefg';
echo preg_match("/^[\u4e00-\u9fa5_a-zA-Z0-9]{3,15}$",$strName);
運(yùn)行一下上面這段代碼,看會(huì)有什么提示信息?
Warning: preg_match(): Compilation failed: PCRE does not support \L, \l, \N, \P, \p, \U, \u, or \X at offset 3 in F:\wwwroot\php\test.php on line 2
原來(lái),PHP正則表達(dá)式中不支持下列 Perl 轉(zhuǎn)義序列:\L, \l, \N, \P, \p, \U, \u, or \X
在 UTF-8 模式下,允許用“\x{...}”,花括號(hào)中的內(nèi)容是表示十六進(jìn)制數(shù)字的字符串。原來(lái)的十六進(jìn)制轉(zhuǎn)義序列 \xhh 如果其值大于 127 的話則匹配了一個(gè)雙字節(jié) UTF-8 字符。
所以,可以這樣來(lái)解決preg_match("/^[\x80-\xff_a-zA-Z0-9]{3,15}$",$strName);
<?php
$shouji ="哈哈哈哈";
if (!preg_match("/^[\x80-\xff]{6,30}$/",$shouji)){
echo "nonono";
}
else {
echo "yesyesyes";
}
?>
echo preg_match("/^[\u4e00-\u9fa5_a-zA-Z0-9]{3,15}$",$strName);
運(yùn)行一下上面這段代碼,看會(huì)有什么提示信息?
Warning: preg_match(): Compilation failed: PCRE does not support \L, \l, \N, \P, \p, \U, \u, or \X at offset 3 in F:\wwwroot\php\test.php on line 2
原來(lái),PHP正則表達(dá)式中不支持下列 Perl 轉(zhuǎn)義序列:\L, \l, \N, \P, \p, \U, \u, or \X
在 UTF-8 模式下,允許用“\x{...}”,花括號(hào)中的內(nèi)容是表示十六進(jìn)制數(shù)字的字符串。原來(lái)的十六進(jìn)制轉(zhuǎn)義序列 \xhh 如果其值大于 127 的話則匹配了一個(gè)雙字節(jié) UTF-8 字符。
所以,可以這樣來(lái)解決preg_match("/^[\x80-\xff_a-zA-Z0-9]{3,15}$",$strName);
復(fù)制代碼 代碼如下:
<?php
$shouji ="哈哈哈哈";
if (!preg_match("/^[\x80-\xff]{6,30}$/",$shouji)){
echo "nonono";
}
else {
echo "yesyesyes";
}
?>
您可能感興趣的文章:
- php使用正則驗(yàn)證中文
- PHP正則驗(yàn)證Email的方法
- php不用正則驗(yàn)證真假身份證
- php 手機(jī)號(hào)碼驗(yàn)證正則表達(dá)式
- php password密碼驗(yàn)證正則表達(dá)式(8位長(zhǎng)度限制)
- php URL驗(yàn)證正則表達(dá)式
- php下常用表單驗(yàn)證的正則表達(dá)式
- php用戶(hù)注冊(cè)信息驗(yàn)證正則表達(dá)式
- php郵箱地址正則表達(dá)式驗(yàn)證
- PHP IPV6正則表達(dá)式驗(yàn)證代碼
- Ajax和PHP正則表達(dá)式驗(yàn)證表單及驗(yàn)證碼
- php正則表達(dá)式驗(yàn)證(郵件地址、Url地址、電話號(hào)碼、郵政編碼)
- PHP實(shí)現(xiàn)的常規(guī)正則驗(yàn)證helper公共類(lèi)完整實(shí)例
相關(guān)文章
JS和C#實(shí)現(xiàn)的兩個(gè)正則替換功能示例分析
這篇文章主要介紹了JS和C#實(shí)現(xiàn)的兩個(gè)正則替換功能,結(jié)合具體實(shí)例形式分析了js與C#進(jìn)行字符串正則替換的相關(guān)實(shí)現(xiàn)方法與注意事項(xiàng),需要的朋友可以參考下2017-06-06自動(dòng)檢測(cè)數(shù)字替換非數(shù)字的正則表達(dá)式
這篇文章主要介紹了自動(dòng)檢測(cè)數(shù)字替換非數(shù)字的正則表達(dá)式 ,需要的朋友可以參考下2016-05-05JS中的正則表達(dá)式及pattern的注意事項(xiàng)
本文給大家介紹js中的正則表達(dá)式的注意事項(xiàng)以及pattern的注意事項(xiàng),需要的小伙伴可以參考下本篇文章2015-10-10JavaScript 使用正則表達(dá)式進(jìn)行表單驗(yàn)證的示例代碼
上篇文章 JavaScript 表單驗(yàn)證正則表達(dá)式大全 說(shuō)的是javascript中使用的正則表達(dá)式的例子,但是沒(méi)有說(shuō)這些正則表達(dá)式如何使用,現(xiàn)在給大家?guī)讉€(gè)例子,大家可以看看。2009-08-08正則表達(dá)式替換字符串并保留其中部分任意內(nèi)容(最新推薦)
我們都知道可以用正則表達(dá)式,即regex,來(lái)進(jìn)行字符串的匹配,替換,今天小編給大家分享如何用正則表達(dá)式替換字符串并保留其中部分任意內(nèi)容,感興趣的朋友跟隨小編一起看看吧2023-04-04