å¨å å¹²ç¹å¿å¥ï¼å¹²ç¹å¿å¥_PHPæç¨
å¨å å¹²ç¹å¿å¥ï¼å¹²ç¹å¿å¥
ããhi
åå°å¨å ï¼ç»æè¿å¨æ²¡æçµå½±å»çï¼æ²¡æè¡£æå»ä¹°ï¼æ²¡æ妹å...å½æ没说
1ãæ£å表达å¼-å®ç»ç¯
---å·¥å ·ç±»å¼å---
/*
* PHP æ£å表达å¼å·¥å
·ç±»
* æè¿°ï¼è¿è¡æ£å表达å¼å¹é
ï¼æ常ç¨çæ£å表达å¼ä»¥åå
许ç¨æ·èªå®ä¹æ£å表达å¼è¿è¡å¹é
*/
class regexTool{
//å®ä¹å¸¸ç¨æ£å表达å¼ï¼å¹¶ç¨æ°ç»å¯¹çæ¹å¼åå¨
private $validate=array(
'require' => '/.+/',
'email' => '/^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/',
'url' => '/^http(s?):\/\/(?:[A-za-z0-9-]+\.)+[A-za-z]{2,4}(?:[\/\?#][\/=\?%\-&~`@[\]\':+!\.#\w]*)?$/',
'currency' => '/^\d+(\.\d+)?$/',
'number' => '/^\d+$/',
'zip' => '/^\d{6}$/',
'integer' => '/^[-\+]?\d+$/',
'double' => '/^[-\+]?\d+(\.\d+)?$/',
'english' => '/^[A-Za-z]+$/',
'qq' => '/^\d{5,11}$/',
'mobile' => '/^1(3|4|5|7|8)\d{9}$/',
);
//å®ä¹å
¶ä»å±æ§
private $returnMatchResult=false; //è¿åç±»åå¤æ
private $fixMode=null; //ä¿®æ£æ¨¡å¼
private $matches=array(); //åæ¾å¹é
ç»æ
private $isMatch=false;
//æé å½æ°ï¼å®ä¾ååä¼ å
¥é»è®¤ç两个åæ°
public function __construct($returnMatchResult=false,$fixMode=null){
$this->returnMatchResult=$returnMatchResult;
$this->fixMode=$fixMode;
}
//å¤æè¿åç»æç±»åï¼ä¸ºå¹é
ç»æmatchesè¿æ¯å¹é
æåä¸å¦isMatchï¼å¹¶è°ç¨è¿åæ¹æ³
private function regex($pattern,$subject){
if(array_key_exists(strtolower($pattern), $this->validate))
$pattern=$this->validate[$pattern].$this->fixMode; //å¤æååè¿æ¥ä¸ä¿®æ£æ¨¡å¼ä½ä¸ºå¹é
çæ£å表达å¼
$this->returnMatchResult ?
preg_match_all($pattern, $subject,$this->matches):
$this->isMatch=preg_match($pattern, $subject)===1;
return $this->getRegexResult();
}
//è¿åæ¹æ³
private function getRegexResult(){
if($this->returnMatchResult){
return $this->matches;
}else{
return $this->isMatch;
}
}
//å
许ç¨æ·èªå®ä¹åæ¢è¿åç±»å
public function toggleReturnType($bool=null){
if(empty($bool)){
$this->returnMatchResult=!$this->returnMatchResult;
}else{
$this->returnMatchResult=is_bool($bool) ? $bool : (bool)$bool;
}
}
//ä¸é¢åæ¯æ°æ®éªè¯æ¹æ³
public function setFixMode($fixMode) {
$this->fixMode = $fixMode;
}
public function noEmpty($str) {
return $this->regex('require', $str);
}
public function isEmail($email) {
return $this->regex('email', $email);
}
public function isMobile($mobile) {
return $this->regex('mobile', $mobile);
}
public function check($pattern, $subject) {
return $this->regex($pattern, $subject);
}
}
å®ä¾åè¿è¡éªè¯
/*
* PHP æ£å表达å¼éªè¯æ件
*/
//å
å«ç±»å®ä¹æ件
require_once 'regexTool.class.php';
$regex=new regexTool();
$regex->setFixMode('U'); //设å®ä¿®æ£æ¨¡å¼ä¸ºææ°æ¨¡å¼U
$r=$regex->isEmail('asdfads@qq.com');
show($r);
//使ç¨ä¹åå¦è¿çshowå½æ°æ¥è¿è¡éªè¯
/*
* Description:PHP æ£å表达å¼å½æ°
*
* @name:show
* @description:output debug
* @param $var:input data
* @return void
*
*/
function show($var=null){
if(empty($var)){
echo 'null';
}elseif(is_array($var)||is_object($var)){
//array,object
echo '
';';
print_r($var);
echo '
}else{
//string,int,float...
echo $var;
}
}
---éªè¯è¡¨å---
å³ä½¿ç¨æ¹æ³ä¹ä¸
htmlåæ件å¦ä¸
ç¸å¯¹åºçå¨regCheck.phpä¸æ¹
if(!$regex->noEmpty($_POST['username'])) exit('ç¨æ·å为空');
---仿ï¼å±±å¯¨çï¼smartyç®æ模æ¿å¼æ---
--å 许ç¨åºç¿åå端å端åå¼å¼å
--模æ¿å¼æå·¥ä½åçï¼è·å模æ¿æºæ件ï¼ç¼è¯æ¨¡æ¿ï¼è¾åºç»ç¨æ·ï¼ä¹å°±æ¯è系起åå端ï¼å“æ¥å£”ä¸æ ·ï¼
--模å¼åå ï¼æ»æ¨¡å¼ï¼å³$patternï¼å模å¼ï¼å³()ä¸çä¸è¥¿ï¼å³ä¸ä¸ªèªå®ä¹çååï¼ä¹æ为模å¼åå
å ·ä½åºç¨ä¸ï¼preg_match_allä¼å¹é å°ä¸¤ç§æ¨¡å¼
preg_match_allç»æ为äºç»´æ°ç»ï¼å ¶ä¸$matches[0][0]为æ»æ¨¡å¼
å ¶ä»ä¸ºå模å¼
--
2ãjQuery
---ç®ä»---
JQueryæ¯ç»§prototypeä¹ååä¸ä¸ªä¼ç§çJavascriptåºãå®æ¯è½»é级çjsåº ï¼å®å ¼å®¹CSS3ï¼è¿å ¼å®¹åç§æµè§å¨ï¼IE 6.0+, FF1.5+, Safari 2.0+, Opera 9.0+ï¼ï¼jQuery2.0ååç»çæ¬å°ä¸åæ¯æIE6/7/8æµè§å¨ãjQuery使ç¨æ·è½æ´æ¹ä¾¿å°å¤çHTMLï¼æ åéç¨æ è®°è¯è¨ä¸çä¸ä¸ªåºç¨ï¼ãeventsãå®ç°å¨ç»ææï¼å¹¶ä¸æ¹ä¾¿å°ä¸ºç½ç«æä¾AJAX交äºãjQueryè¿æä¸ä¸ªæ¯è¾å¤§çä¼å¿æ¯ï¼å®çæ档说æå¾å ¨ï¼èä¸åç§åºç¨ä¹è¯´å¾å¾è¯¦ç»ï¼åæ¶è¿æ许å¤æççæ件å¯ä¾éæ©ãjQueryè½å¤ä½¿ç¨æ·çhtml页é¢ä¿æ代ç åhtmlå 容å离ï¼ä¹å°±æ¯è¯´ï¼ä¸ç¨åå¨htmléé¢æå ¥ä¸å jsæ¥è°ç¨å½ä»¤äºï¼åªéè¦å®ä¹idå³å¯ã jQueryæ¯ä¸ä¸ªå ¼å®¹å¤æµè§å¨çjavascriptåºï¼æ ¸å¿ç念æ¯write less,do more(åå¾æ´å°,åå¾æ´å¤)ãjQueryå¨2006å¹´1æç±ç¾å½äººJohn Resigå¨çº½çº¦çbarcampåå¸ï¼å¸å¼äºæ¥èªä¸çåå°çä¼å¤JavaScripté«æå å ¥ï¼ç±Dave Methvinçé¢å¢éè¿è¡å¼åãå¦ä»ï¼jQueryå·²ç»æ为ææµè¡çjavascriptåºï¼å¨ä¸çå10000个访é®æå¤çç½ç«ä¸ï¼æè¶ è¿55%å¨ä½¿ç¨jQueryã jQueryæ¯å è´¹ãå¼æºçï¼ä½¿ç¨MIT许å¯åè®®ãjQueryçè¯æ³è®¾è®¡å¯ä»¥ä½¿å¼åè æ´å 便æ·ï¼ä¾å¦æä½æ档对象ãéæ©DOMå ç´ ãå¶ä½å¨ç»ææãäºä»¶å¤çã使ç¨Ajax以åå ¶ä»åè½ãé¤æ¤ä»¥å¤ï¼jQueryæä¾API让å¼åè ç¼åæ件ãå ¶æ¨¡ååç使ç¨æ¹å¼ä½¿å¼åè å¯ä»¥å¾è½»æ¾çå¼ååºåè½å¼ºå¤§çéææå¨æç½é¡µã jQueryï¼é¡¾åæä¹ï¼ä¹å°±æ¯JavaScriptåæ¥è¯¢ï¼Queryï¼ï¼å³æ¯è¾ å©JavaScriptå¼åçåºãï¼æéèªç¾åº¦ç¾ç§ï¼ --ç¯å¢æ建 ä¸è½½1.9.0稳å®çæ¬ï¼ä¿åå¨æ¬å°å°±å¥½ï¼ç¶ååç¨javascriptçæ¶åå å«è¿å°±è¡äº --åä½éª jQueryå°±æ¯jsçå½æ°å°è£ ï¼å½¢æåºï¼ç§ä»¥ä¸ºå ¶æ´å©äºå¯¹ä»å¯¹è±¡ï¼ ç¸æ¯äºåJSï¼å®ä¸è¬æ¥è¯´æ´ç®ä¾¿è¿é$()表示å¹é ä¸å®å符å çå ç´
---åºç¡éæ©å¨---
--#idéæ©å¨
åºæ¬ä½¿ç¨æ¹æ³æ¯$("#id")
--elementéæ©å¨
æ ¹æ®å
ç´ çå称å¯ä»¥æ¥æ¾å°è¯¥å
ç´ ï¼å¹¶è°ç¨css()ãattr()ç
æ¹æ³è®¾ç½®å¯¹æåå
ç´ çæä½ã
--.classéæ©å¨
æ ¹æ®ç±»çå称éæ©å ç´ ï¼å ¶ä»æä½ç±»ä¼¼
--*éæ©å¨
éæ©å¨ä¸çåæ°å°±ä¸ä¸ª“*”ï¼æ¢æ²¡æ“#”å·ï¼ä¹æ²¡æ“.”å·ã ç±äºè¯¥éæ©å¨çç¹æ®æ§ï¼å®å¸¸ä¸å ¶ä»å ç´ ç»å使ç¨ï¼è¡¨ç¤ºè·åå ¶ä»å ç´ ä¸çå ¨é¨åå ç´ ã
å®è·µè¯æï¼ç±äºä½¿ç¨*éæ©å¨è·åçæ¯å ¨é¨å ç´ ï¼å æ¤ï¼æäºæµè§å¨å°ä¼æ¯è¾ç¼æ ¢ï¼è¿ä¸ªéæ©å¨ä¹éè¦è°¨æ 使ç¨ã
--sele1,sele2,seleNéæ©å¨
ææ¶éè¦ç²¾ç¡®çéæ©ä»»æå¤ä¸ªæå®çå ç´ ï¼ç±»ä¼¼äºä»æå ·çä¸æéåºå¤æ ¹èªå·²å欢çç¬ï¼å°±éè¦è°ç¨sele1,sele2,seleNéæ©å¨ï¼å®çè°ç¨æ ¼å¼å¦ä¸ï¼
$(“sele1,sele2,seleN”)
å
¶ä¸åæ°sele1ãsele2å°seleN为ææéæ©å¨ï¼æ¯ä¸ªéæ©å¨ä¹é´ç¨“ï¼”å·éå¼ï¼å®ä»¬å¯ä»¥æ¯ä¹åæåçåç§ç±»åéæ©å¨ï¼å¦$(“#id”)ã$(“.class”)ã$(“selector”)
éæ©å¨çã
--ance descéæ©å¨
æ¬èå¼å§ï¼æ们å°ä»ç»å±æ¬¡æ§éæ©å¨ã
å¨å®é åºç¨å¼åä¸ï¼å¸¸å¸¸æ¯å¤ä¸ªå ç´ åµå¥å¨ä¸èµ·ï¼å½¢æå¤æçå±æ¬¡å ³ç³»ï¼éè¿å±æ¬¡éæ©å¨ï¼å¯ä»¥å¿«éå®ä½æä¸å±æ¬¡çä¸ä¸ªæå¤ä¸ªå ç´ ï¼ance descéæ©å¨å°±æ¯å ¶ä¸ä¹ä¸ï¼å®çè°ç¨æ ¼å¼å¦ä¸ï¼
$("ance desc")
å ¶ä¸ance descæ¯ä½¿ç¨ç©ºæ ¼éå¼ç两个åæ°ãanceåæ°ï¼ancestorç¥å çç®åï¼è¡¨ç¤ºç¶å ç´ ï¼descåæ°ï¼descendantå代çç®åï¼è¡¨ç¤ºå代å ç´ ï¼å³å æ¬åå ç´ ãåå ç´ ççã两个åæ°é½å¯ä»¥éè¿éæ©å¨æ¥è·åãæ¯å¦å®¶æå§æ°“div”ï¼å®¶æå 代人éï¼é½æååé带“span”çï¼å°±å¯ä»¥ç¨è¿ä¸ªance descéæ©å¨æè¿å 个人ç»å®ä½åºæ¥ã
--parent>childéæ©å¨
ä¸ä¸ä¸èä»ç»çance desc
éæ©å¨ç¸æ¯ï¼parent > child
éæ©å¨çèå´è¦å°äºï¼å®æéæ©çç®æ æ¯åéå
ç´ ï¼ç¸å½äºä¸ä¸ªå®¶åºä¸çåè¾ä»¬ï¼ä½ä¸å
æ¬åè¾ï¼å®çè°ç¨æ ¼å¼å¦ä¸ï¼
$(“parent > child”)
childåæ°è·åçå ç´ é½æ¯parentéæ©å¨çåå ç´ ï¼å®ä»¬ä¹é´éè¿“>”符å·æ¥è¡¨ç¤ºä¸ç§å±æ¬¡å ³ç³»ã
ç å家æ
--prev+nextéæ©å¨
ä¿è¯è¯´“è¿äº²ä¸å¦è¿é»”ï¼èéè¿prev + next
éæ©å¨å°±å¯ä»¥æ¥æ¾ä¸“prev”å
ç´ ç´§é»çä¸ä¸ä¸ª“next”å
ç´ ï¼æ ¼å¼å¦ä¸ï¼
$(“prev + next”)
å ¶ä¸åæ°prev为任ä½ææçéæ©å¨ï¼åæ°“next”为å¦å¤ä¸ä¸ªææéæ©å¨ï¼å®ä»¬ä¹é´ç“+”表示ä¸ç§ä¸ä¸çå±æ¬¡å ³ç³»ï¼ä¹å°±æ¯è¯´ï¼“prev”å ç´ æç´§é»çä¸ä¸ä¸ªå ç´ ç±“next”éæ©å¨è¿åç并ä¸åªè¿åå¯çä¸ä¸ªå ç´ ã
ç å家æ
注æï¼è¿éçnextæ¯è¦è¾å ¥ä¸ä¸ä¸ªè¦æ¾çåç±»å¨æ è¯ï¼ä¸æ¯ç´æ¥è¾å ¥next
--prev~siblingséæ©å¨
ä¸ä¸ä¸èä¸ä»ç»çprev + next
å±æ¬¡éæ©å¨ç¸åï¼prev ~ siblings
éæ©å¨ä¹æ¯æ¥æ¾prev å
ç´ ä¹åçç¸é»å
ç´ ï¼ä½åè
åªè·å第ä¸ä¸ªç¸é»çå
ç´ ï¼èåè
åè·åprev å
ç´ åé¢å
¨é¨ç¸é»çå
ç´ ï¼å®çè°ç¨æ ¼å¼å¦ä¸ï¼
$(“prev ~ siblings”)
å ¶ä¸åæ°prevä¸siblings两è ä¹é´éè¿“~”符å·å½¢æä¸ç§å±æ¬¡ç¸é»çå ³ç³»ï¼è¡¨æsiblingséæ©å¨è·åçå ç´ é½æ¯prevå ç´ ä¹åçåè¾å ç´ ã
ç å家æ
---è¿æ»¤æ§éæ©å¨---
--:first/:lastè¿æ»¤éæ©å¨
æ¬ç« æ们ä»ç»è¿æ»¤éæ©å¨ï¼è¯¥ç±»åçéæ©å¨æ¯æ ¹æ®æè¿æ»¤è§åè¿è¡å ç´ çå¹é ï¼ä¹¦åæ¶ä»¥“ï¼”å·å¼å¤´,é常ç¨äºæ¥æ¾éåå ç´ ä¸çæä¸ä½ç½®çå个å ç´ ã
å¨jQueryä¸ï¼å¦ææ³å¾å°ä¸ç»ç¸åæ ç¾å ç´ ä¸ç第1个å ç´ è¯¥ææ ·åå¢ï¼
å¨ä¸é¢ç示ä¾ä»£ç ä¸ä½ å¯è½æ³¨æå°æ们ä¼ä½¿ç¨
$(“li:first”)
注æï¼ä¹¦åæ¶ä»¥“ï¼”å·å¼å¤´ã
- è¡è
- é¦è
- æ©å
- 西ç
- è¹æ
--:eq(index)è¿æ»¤éæ©å¨
å¦ææ³ä»ä¸ç»æ ç¾å ç´ æ°ç»ä¸ï¼çµæ´»éæ©ä»»æçä¸ä¸ªæ ç¾å ç´ ï¼æ们å¯ä»¥ä½¿ç¨
:eq(index)
å ¶ä¸åæ°index表示索å¼å·ï¼å³ï¼ä¸ä¸ªæ´æ°ï¼ï¼å®ä»0å¼å§ï¼å¦æindexçå¼ä¸º3ï¼è¡¨ç¤ºéæ©çæ¯ç¬¬4个å ç´
- æ©å
- é¦è
- è¡è
- è¹æ
- 西ç
--:contains(text)è¿æ»¤éæ©å¨
ä¸ä¸ä¸èä»ç»ç:eq(index)éæ©å¨æç´¢å¼æ¥æ¾å
ç´ ç¸æ¯ï¼ææ¶åæ们å¯è½å¸ææç
§ææ¬å
容æ¥æ¥æ¾ä¸ä¸ªæå¤ä¸ªå
ç´ ï¼é£ä¹ä½¿ç¨:contains(text)
éæ©å¨ä¼æ´å æ¹ä¾¿ï¼ å®çåè½æ¯éæ©å
å«æå®å符串çå
¨é¨å
ç´ ï¼å®é常ä¸å
¶ä»å
ç´ ç»å使ç¨ï¼è·åå
å«“text”å符串å
容çå
¨é¨å
ç´ å¯¹è±¡ãå
¶ä¸åæ°text
表示页é¢ä¸çæåã
- 强大ç"jQuery"
- "javascript"ä¹å¾å®ç¨
- "jQuery"åç«¯å¿ å¦
- "java"æ¯ä¸ç§å¼åè¯è¨
- å端å©å¨——"jQuery"
--:has(selector)è¿æ»¤éæ©å¨
é¤äºå¨ä¸ä¸å°èä»ç»ç使ç¨å
å«çå符串å
容è¿æ»¤å
ç´ ä¹å¤ï¼è¿å¯ä»¥ä½¿ç¨å
å«çå
ç´ å称æ¥è¿æ»¤ï¼:has(selector)
è¿æ»¤éæ©å¨çåè½æ¯è·åéæ©å¨ä¸å
å«æå®å
ç´ å称çå
¨é¨å
ç´ ï¼å
¶ä¸selector
åæ°å°±æ¯å
å«çå
ç´ å称ï¼æ¯è¢«å
å«å
ç´ ã
ææ¯På ç
æä¹æ¯På ç
På çå°±æ¯æå¦
--:hiddenè¿æ»¤éæ©å¨
:hidden
è¿æ»¤éæ©å¨çåè½æ¯è·åå
¨é¨ä¸å¯è§çå
ç´ ï¼è¿äºä¸å¯è§çå
ç´ ä¸å
æ¬typeå±æ§å¼ä¸ºhiddençå
ç´ ã
æ¾ç¤ºéèå ç´ çå 容
--:visibleè¿æ»¤éæ©å¨
ä¸ä¸ä¸èç:hidden
è¿æ»¤éæ©å¨ç¸åï¼:visible
è¿æ»¤éæ©å¨è·åçæ¯å
¨é¨å¯è§çå
ç´ ï¼ä¹å°±æ¯è¯´ï¼åªè¦ä¸å°å
ç´ çdisplayå±æ§å¼è®¾ç½®ä¸º“none”ï¼é£ä¹ï¼é½å¯ä»¥éè¿è¯¥éæ©å¨è·åã
ä¿®æ¹å¯è§“æ°´æ”çèæ¯è²
- é¦è
- è¡è
- è¹æ
--
下一篇: 数组组合问题