本文目錄一覽:
- 1、php寫出一個驗證用戶ID的正則表達式
- 2、PHP 註冊表單的正則驗證
- 3、php 用戶名和密碼 正則表達式
- 4、php正則表達式驗證用戶名
- 5、php 判斷 用戶名 英文或者數字
- 6、用PHP寫用戶名驗證..注意我的正則表達式用法是否正確
php寫出一個驗證用戶ID的正則表達式
“/^[^\x{4e00}-\x{9fa5}A-Za-z0-9_-\.]+$/u”
用preg_match函數
對於uft-8驗證,gbk的也差不多,就中文驗證可能不一樣
2到24位就不好說了,尤其中文,在utf-8下,字符位數不一樣,php中用使用mb_strlen來計算長度,中文都算一個字符,在使用mb_strlen函數時首先應該設置編碼字符集,mb_internal_encoding(‘utf-8’),或者,在mb_strlen中第二個參數給出編碼集
中文utf-8在mysql中也是算一個字符
PHP 註冊表單的正則驗證
我舉個例子撒
假如你表單是這麼寫
用戶名: input name=”username” value=”” / 注意name為 username
表單用POST方式提交 即form 的method 屬性為post
在PHP中這麼驗證,
假設我要這個用戶名只能是 10-32位 數字英文下劃線組合,且第一位必須字母
empty($_POST[‘username’]) $_POST[‘username’] = ”;
if(!preg_match(‘/^[a-zA-Z0-9\_]{10,32}$/’,$_POST[‘username’])) exit(‘用戶名不合法’);
if(!preg_match(‘/^[a-zA-Z]/’,$_POST[‘username’])) exit(‘第一位必須是字母’);
正則表達式就是 兩個/中間的部分了
^表示前面沒有任何字符了
$表示結尾沒有任何字符了
[a-zA-Z0-9\_]表示匹配規則集
每個字符都必須 是 小寫字母a-z 或 大寫字母A-Z 或 數字0-9 或者下劃線_ 其中\表示轉義符 用於轉義一些特殊字符
{16,32} 表示匹配次數為 16次到32次,少於16 或多於32 均為不合格,如果不限制長度 可以直接寫為 + 即 [a-zA-Z0-9]+ 或者指定一個長度 {10}
關於其他的表達式 百度搜索下就行了,都是通用的
例如
匹配手機號 /^1[0-9]{10}$/
php 用戶名和密碼 正則表達式
/^[A-Za-z0-9_\u4e00-\u9fa5]{3,15}$/ 用戶名
/^[^\u4e00-\u9fa5\s]{6,20}$/ 密碼
php正則表達式驗證用戶名
//中文和英文結合而且6-20字符
$preg=’/^[a-zA-Z\x{4e00}-\x{9fa5}]{6,20}$/u’;
//英文、數字、下劃線6-20位字符
$preg=’/^[\w\_]{6,20}$/u’;
過濾非法字符防止SQL注入漏洞,只能另說,對不同的接口和參數有針對性的過濾,沒有通用的正則。
php 判斷 用戶名 英文或者數字
用正則來判斷,如檢查是否數字的代碼: 1 2 if(preg_match(“/^\d*$/”,$fgid)) echo(‘是數字’); else echo(‘不是數字’); 驗證由26個英文字母組成的字符串:^[A-Za-z]+$ 驗證由26個大寫英文字母組成的字符串:^[A-Z]+$ 驗證由數字和26個英文字母組成的字符串:^[A-Za-z0-9]+$
用PHP寫用戶名驗證..注意我的正則表達式用法是否正確
$pattern=”/\w/”;這裡有問題,一個字符啊。
得用/^\w+$/哦,/^[_a-zA-Z0-9]+$/也行
其實字符個數你都可以寫到正則裡面不用再額外判斷f($newname==””||$newname.length6||A.lenth16||!pattern.test(A))
寫成
$pattern=”/^[a-zA-Z][_a-zA-Z0-9]{5,15}$/”(6-16位字符,字母開頭,只包含字母數字下劃線)然後只用
f($newname==””||!pattern.test(A))來判斷就可以了
原創文章,作者:JPJQ,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/143011.html