判斷字符串是否含有中英文和數字

對於正則表達式一直不是很擅長,因此有必要記錄一下。html

正則表達式的基本知識

  • 行定位符(^與$)正則表達式

行定位符是用來描述字符串的邊界。「$」表示行結尾「^」表示行開始如"^de",表示以de開頭的字符串 "de$",表示以de結尾的字符串。.net

  • 單詞定界符code

咱們在查找的一個單詞的時候,如an是否在一個字符串」gril and body」中存在,很明顯若是匹配的話,an確定是能夠匹配字符串「gril and body」匹配到,怎樣才能讓其匹配單詞,而不是單詞的一部分呢?這時候,咱們能夠是喲個單詞定界符b。
banb 去匹配」gril and body」的話,就會提示匹配不到。
固然還有一個大寫的B,它的意思,和b正好相反,它匹配的字符串不能使一個完整的單詞,而是其餘單詞或字符串中的一部分。如BanB。htm

  • 選擇字符(|) ,表示或對象

選擇字符表示或的意思。如Aa|aA,表示Aa或者是aA的意思。注意使用」[]」與」|」的區別,在於」[]」只能匹配單個字符,而」|」能夠匹配任意長度的字符串。在使用」[]」的時候,每每配合鏈接字符」-「一塊兒使用,如[a-d],表明a或b或c或d。blog

  • 排除字符,排除操做utf-8

正則表達式提供了」^」來表示排除不符合的字符,^通常放在[]中。如1,該字符不是1~5之間的數字。unicode

  • 限定符(?*+{n,m})字符串

限定符主要是用來限定每一個字符串出現的次數。

限定字符 含義
零次或一次
* 零次或屢次
+ 一次或屢次
{n} n次
{n,} 至少n次
{n,m} n到m次

/x表示16進制
/u 表示按unicode(utf-8)匹配(主要針對多字節好比漢字)
/i 表示不區分大小寫(若是表達式裏面有 a, 那麼 A 也是匹配對象)
/s 表示將字符串視爲單行來匹配

  • 必須只有中英文和數字

$match = "/^[\x{4e00}-\x{9fa5}A-Za-z0-9]+$/u";
if(!preg_match($match,$title)){
  echo "含有中文,英文,數字之外的字符";
}else{
  echo "只有中文,英文,數字之外的字符";
}
  • 只需包含中英文和數字

$match = "/[\x{4e00}-\x{9fa5}A-Za-z0-9]/u";
if(!preg_match($match,$title)){
echo "不含有中文,英文,數字字符";
}else{
  echo "含有中文,英文,數字字符";
}

參考文章:http://www.jb51.net/article/6...
http://www.cnblogs.com/helloh...


  1. 1-5
相關文章
相關標籤/搜索