jquery里的正則表達式說明
更新時間:2011年08月03日 23:58:47 作者:
根據(jù)jquery的注釋,其是匹配HTML字符串和ID選擇器
// A simple way to check for HTML strings or ID strings
// (both of which we optimize for)
quickExpr = /^(?:[^<]*(<[\w\W]+>)[^>]*$|#([\w\-]+)$)/
根據(jù)jquery的注釋,其是匹配HTML字符串和ID選擇器
一開始看這段正則表達式的時候,怎么匹配非<的0個或者多個,又匹配<,這樣到底是匹配<還是不匹配呢?而且html標簽,不是應該就直接匹配<嗎?
首先(?:pattern)匹配 pattern 但不獲取匹配結果,也就是說這是一個非獲取匹配,不進行存儲供以后使用。而且其會匹配所有非括號里的內容。
下面給個例子來說明
var quickExpr = /^(?:[^<]*(<[\w\W]+>)[^>]*$|#([\w\-]+)$)/;
sss="jytjt<dd1></1>fefef"
match=quickExpr.exec(sss);
alert(match);
結果是jytjt<dd1></1>fefef=,<dd1></1>
可以看到exec返回的是一個數(shù)組,而且第二個字符串就是?:匹配掉<>外非<和非>的字符
在jquery中獲得結果的方法也是match[1]。所以這樣即使你給jquery的選擇器輸入了多余的html標簽,它也可以篩選出正確的html標簽來。同時這里的?:還會篩選掉#,所以會得到只有id名,沒有#號的id。
所以這段jquery正則表達式的意思就是,篩選html標簽或者id選擇符
// (both of which we optimize for)
quickExpr = /^(?:[^<]*(<[\w\W]+>)[^>]*$|#([\w\-]+)$)/
根據(jù)jquery的注釋,其是匹配HTML字符串和ID選擇器
一開始看這段正則表達式的時候,怎么匹配非<的0個或者多個,又匹配<,這樣到底是匹配<還是不匹配呢?而且html標簽,不是應該就直接匹配<嗎?
首先(?:pattern)匹配 pattern 但不獲取匹配結果,也就是說這是一個非獲取匹配,不進行存儲供以后使用。而且其會匹配所有非括號里的內容。
下面給個例子來說明
復制代碼 代碼如下:
var quickExpr = /^(?:[^<]*(<[\w\W]+>)[^>]*$|#([\w\-]+)$)/;
sss="jytjt<dd1></1>fefef"
match=quickExpr.exec(sss);
alert(match);
結果是jytjt<dd1></1>fefef=,<dd1></1>
可以看到exec返回的是一個數(shù)組,而且第二個字符串就是?:匹配掉<>外非<和非>的字符
在jquery中獲得結果的方法也是match[1]。所以這樣即使你給jquery的選擇器輸入了多余的html標簽,它也可以篩選出正確的html標簽來。同時這里的?:還會篩選掉#,所以會得到只有id名,沒有#號的id。
所以這段jquery正則表達式的意思就是,篩選html標簽或者id選擇符
相關文章
jQuery中使用each處理json數(shù)據(jù)
這篇文章主要介紹了jQuery中使用each處理json數(shù)據(jù),非常簡單實用,需要的朋友可以參考下2015-04-04
淺談EasyUi ComBotree樹修改 父節(jié)點選擇的問題
下面小編就為大家?guī)硪黄獪\談EasyUi ComBotree樹修改 父節(jié)點選擇的問題。2016-11-11
從零開始學習jQuery (五) jquery事件與事件對象
事件是腳本編程的靈魂. 所以本章內容也是jQuery學習的重點. 本文將對jQuery中的事件處理以及事件對象進行詳細的講解.2011-02-02

