導航:首頁 > 編程語言 > php正則長度

php正則長度

發布時間:2022-07-13 13:43:45

『壹』 求高手寫php驗證域名的正則表達式

<?php
$str = "http://www.12aa_china521.com";
$strlen = strlen($str);
if($strlen<2 || $strlen>46)
{
echo "域名長度為2-46";
exit;
}
$arr = explode(".",$str);
if(strtolower(end($arr))=="cn")
{
if(strpos($str,"china") || strpos($str,"chinese"))
{
echo "cn後綴的域名不允許含有china或者chinese";
exit;
}
}
$preg = "/^(?:http:\/\/)?www.[0-9a-zA-Z]+_?[0-9a-zA-Z]+.(?:com(?:.cn)?|net|org|info|mobi)$/";
if(preg_match($preg,$str))
{
echo "域名正確";
}else{
echo "域名不正確";
}
?>

『貳』 需要一個PHP正則表達式來驗證密碼,不知道限制大小寫怎麼寫了,求教一下.

$str='你要輸入的密碼';

$model='/[A-Z]+[a-z]+.*/'; //最少要包含一個或者多個大寫或者小寫,和0個或則多個任意字元;
$modelength='/.{8,}/'; //輸入的最少為8位

if(!preg_match($modelength,'aaa')){
echo '密碼不能少於8位';
}
if(!preg_match($model,$str)){
echo '密碼必須包含大小寫';
}

也可以這樣寫
$str="Aaaa!";
$model='/[A-Z]+[a-z]+.*/'; //最少要包含一個或者多個大寫或者小寫,和0個或則多個任意字元;
$modelength='/.{8,}/'; //輸入的最少為8位

if(!preg_match($model,$str)||strlen($str)<8){
echo '密碼需要包含大小寫,或者密碼長度小於8位';
}

『叄』 php正則表達式來驗證文字長度

preg_match_all函數用來進行正在表達式匹配的,你的語句中是把$str拆分為字元,存放在$match數組裡面,你在語句中增加下來的語句可以明白其功能:
print_r($match);

此函數的詳細解釋見官方資料:

http://php.net/manual/zh/function.preg-match-all.php

不過呢,為了檢測字元串的長度,可以使用strlen這樣的函數,更加高效和快速。

『肆』 php正則表達式

優先匹配哪個?
通常是優先匹配左邊的(從左往右執行嘛,然後又因為有貪婪性,比如[0-9]*[0-9]*去匹配123,左邊的[0-9]*會匹配到12,右邊的[0-9]*會匹配到3),正則表達式左邊的部分會匹配到能是能使匹配成功的最長的匹配,具體原因如下:
貪婪、回溯和正則導向引正則擎的急切性:正則的{}和*合+有具貪婪性會向後匹配到他們可以匹配的盡可能多的字元串。但是如果重復性的匹配會引起整個(後面的)正則表達式匹配失敗時,會引起回溯,放棄最後一次重復匹配(相當於剩餘的字元串從左邊增加了一位),用表達式後面的部分匹配剩餘的字元串。在前面的正則匹配成功後立即用剩餘的表達式部分繼續匹配後面的內容,如果匹配成功會立刻返回匹配成功,不會繼續回溯(php的正則表達式引擎室正則導向的)


裡面的(.*)是怎麼找得?
*有具貪婪性會向後匹配到.可以匹配的最大長度的字元串,最初匹配到-2011-2012,然後因為回溯不斷減少匹配的值,直到匹配-201。

過程是怎樣的,
執行順序:
1.[0-9]{2,4}會先匹配到2010,
2.然後(.*),因為*得貪婪性會匹配到後面所有.能匹配的字元-2011-2012。
3.此時表達式執行到[0-9]{1,2},因為[0-9]{1,2}此時沒有任何可以匹配的內容,所以引起回溯(.*)匹配到前一次匹配結果的倒數第2位重新匹配到-2011-201,[0-9]{1,2}與最後一位匹配成功得到字元串最後面的2,因為正則引擎的急切性,匹配成功後會立即用正則表達式剩餘的部分繼續向後匹配。
4.此時表達式執行到\1,字元串後面沒有剩下任何東西所以\1 (\1指(.*)匹配的結果-2011-201)匹配失敗,然後引起回溯。[0-9]{1,2}向前移一位,結果[0-9]{1,2}沒有字元可以進行匹配操作,匹配失敗。引起回溯,(.*)匹配到前一次匹配結果的倒數第2位重新匹配到-2011-20,再用[0-9]{1,2}匹配得到12,後面依然沒有字元與\1匹配,引起回溯,此次[0-9]{1,2}匹配到1,\1(此時值為-2011-20)與2匹配再次失敗。於是重復上面的回溯【此處省去n百字,總之是重復上面的回溯】,直到(.*)匹配到-201,\1匹配到了-2012中的-201,因為正則導向的正則引擎是急切的,不再進行回溯,繼續後面的匹配。
5.最後,[0-9]{1,2}與字串剩餘部(最後一個字元)2匹配成功返回,因為正則導向的正則引擎是急切的,所以立刻返回匹配結果,不再進行回溯。

睡覺前看到的沒想到寫出來這么難,不過也沒白寫,就當總結了。

『伍』 php正則表達取指定長度文本怎麼弄

如果你只是限制用戶名或者密碼的長度,那就沒必要用正則
$user = $_POST['user'];
if ( strlen( $user ) < 6 || strlen( $user ) > 12 ) {
用戶名長度只能6-12位

}
如果是要限制長度,並且只能是字母數字的話, 那就可以用正則
if ( !preg_match('/^\w{6,12}$/is') ) {
用戶名必須是字母數字下劃線組合,6-12位
}
至於你第二個問題,估計是編碼沒有統一,否則不可能出現那種字元的

『陸』 求一個PHP的密碼匹配正則

你這里要求了密碼長度為6-18位,/[\s\S]+/只能匹配任意字元,且能偶匹配的字元遠超出你給的限制。

建議你在匹配密碼前,先對密碼字元串的長度進行檢驗,然後再對密碼字元的合法性進行判斷,
這里合法性的判斷又有很多,如必須以字母開頭、數字開頭、數字結尾等等;
下面寫了一個正則表達式只能匹配當且僅包含由字母、數字、特殊字元!@#$%^&*_組成的密碼字元串。
如下:
[-\da-zA-Z!@#$%^&*_]*
更嚴格的判斷,比如開頭^,結尾$的判斷,必須包含一個字母一個數字等等,根據自己的需要進行更改完善

『柒』 php正則 截取字元串長度

如果是中文,要用mbsubstr 詳見php幫助
你可以去後盾人平台看看,裡面的東西不錯

『捌』 求PHP 的正則表達式 大全

匹配中文字元的正則表達式: [\u4e00-\u9fa5] 評註:匹配中文還真是個頭疼的事,有了這個表達式就好辦了 匹配雙位元組字元(包括漢字在內):[^\x00-\xff] 評註:可以用來計算字元串的長度(一個雙位元組字元長度計2,ASCII字元計1) 匹配空白行的正則表達式:\n\s*\r 評註:可以用來刪除空白行 匹配HTML標記的正則表達式:<(\S*?)[^>]*>.*?</\1>|<.*? /> 評註:網上流傳的版本太糟糕,上面這個也僅僅能匹配部分,對於復雜的嵌套標記依舊無能為 匹配首尾空白字元的正則表達式:^\s*|\s*$ 評註:可以用來刪除行首行尾的空白字元(包括空格、製表符、換頁符等等),非常有用的表達式 匹配Email地址的正則表達式:\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)* 評註:表單驗證時很實用 匹配網址URL的正則表達式:[a-zA-z]+://[^\s]* 評註:網上流傳的版本功能很有限,上面這個基本可以滿足需求 匹配帳號是否合法(字母開頭,允許5-16位元組,允許字母數字下劃線):^[a-zA-Z][a-zA-Z0-9_]{4,15}$ 評註:表單驗證時很實用 匹配國內電話號碼:\d{3}-\d{8}|\d{4}-\d{7} 評註:匹配形式如 0511-4405222 或 021-87888822 匹配騰訊QQ號:[1-9][0-9]{4,} 評註:騰訊QQ號從10000開始 匹配中國郵政編碼:[1-9]\d{5}(?!\d) 評註:中國郵政編碼為6位數字 匹配身份證:\d{15}|\d{18} 評註:中國的身份證為15位或18位 匹配ip地址:\d+\.\d+\.\d+\.\d+ 評註:提取ip地址時有用 匹配特定數字: ^[1-9]\d*$ //匹配正整數 ^-[1-9]\d*$ //匹配負整數 ^-?[1-9]\d*$ //匹配整數 ^[1-9]\d*|0$ //匹配非負整數(正整數 + 0) ^-[1-9]\d*|0$ //匹配非正整數(負整數 + 0) ^[1-9]\d*\.\d*|0\.\d*[1-9]\d*$ //匹配正浮點數 ^-([1-9]\d*\.\d*|0\.\d*[1-9]\d*)$ //匹配負浮點數 ^-?([1-9]\d*\.\d*|0\.\d*[1-9]\d*|0?\.0+|0)$ //匹配浮點數 ^[1-9]\d*\.\d*|0\.\d*[1-9]\d*|0?\.0+|0$ //匹配非負浮點數(正浮點數 + 0) ^(-([1-9]\d*\.\d*|0\.\d*[1-9]\d*))|0?\.0+|0$ //匹配非正浮點數(負浮點數 + 0) 評註:處理大量數據時有用,具體應用時注意修正 匹配特定字元串: ^[A-Za-z]+$ //匹配由26個英文字母組成的字元串 ^[A-Z]+$ //匹配由26個英文字母的大寫組成的字元串 ^[a-z]+$ //匹配由26個英文字母的小寫組成的字元串 ^[A-Za-z0-9]+$ //匹配由數字和26個英文字母組成的字元串 ^\w+$ //匹配由數字、26個英文字母或者下劃線組成的字元串 /http:\/\/(.*)\//i //匹配外部鏈接地址

滿意請採納

閱讀全文

與php正則長度相關的資料

熱點內容
erp是什麼伺服器 瀏覽:182
python中tmp 瀏覽:19
說明wpf加密過程 瀏覽:142
java讀取list 瀏覽:702
iis7gzip壓縮 瀏覽:39
有什麼安卓機打吃雞好 瀏覽:597
三星u盤加密狗 瀏覽:473
php函數的返回值嗎 瀏覽:586
國企穩定程序員 瀏覽:328
編程貓如何使用教程視頻 瀏覽:218
安卓遠端網頁如何打日誌 瀏覽:218
壓縮flash大小 瀏覽:993
解壓的玩具教程可愛版 瀏覽:366
哪個求職app比較靠譜 瀏覽:888
java的讀法 瀏覽:59
nod32區域網伺服器地址 瀏覽:1003
數碼科技解壓 瀏覽:236
新網的雲伺服器管理界面復雜嗎 瀏覽:367
無人聲解壓強迫症視頻 瀏覽:573
計算機編譯運行 瀏覽:640