日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Sizzle.selectors.match/leftMatch

發(fā)布時間:2025/3/8 编程问答 14 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Sizzle.selectors.match/leftMatch 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

對象Sizzle.selectors.match/leftMatch中存放了表達式類型和正則的映射,正則用于確定塊表達式的類型,并解析其中的參數(shù)。

相關(guān)代碼如下:

var Expr = Sizzle.selectors = {match : {ID: /#((?:[\w\u00c0-\uFFFF\-]|\\.)+)/,CLASS: /\.((?:[\w\u00c0-\uFFFF\-]|\\.)+)/,NAME: /\[name=['"]*((?:[\w\u00c0-\uFFFF\-]|\\.)+)['"]*/,ATTR: /\[\s*((?:[\w\u00c0-\uFFFF\-]|\\.)+)\s*(?:(\S?=)\s*(?:(['"])(.*?)\3|(#?(?:[\w\u00c0-\uFFFF\-]|\\.)*)|)|)\s*\]/,TAG: /^((?:[\w\u00c0-\uFFFF\*\-]|\\.)+/,CHILD: /:(only|nth|last|first)-child(?:\(\s*(even|odd|?:[+\-]?\d+|(?:[+\-]?\d*)?n\s*\d+)?))\s*\))?/,POS: /:(nth|eq|gt|lt|first|last|even|odd)(?:\((\d*)\))?(?=[^\-]|$)/,PSEUDO: /:((?:[\w\u00c0-\uFFFF\-]|\\.)+)(?:\((['"]?)((?:\([^\)]+\)|[^\(\)]*)+)\2\))?/} }var origPOS = Expr.match.POS,fescape = function(all, num) {return "\\" + (num - 0 + 1);};for ( var type in Expr.match ) {Expr.match[ type ] = new RegExp( Expr.match[ type ].source + (/(?![^\[]*\])(?![^\(]*\))/.source) );Expr.leftMatch[ type ] = new RegExp ( /(^(?:.|\r|\n)*?)/.source + Expr.match[ type ].source.replace(/\\(\d+)/g, fescape) ); }

我不保證以上代碼的正確性。良心起見,解釋上面代碼的一些難點

  • \3,\2 應(yīng)用前面匹配到的分組
  • (?:) 表示匹配,但不計入分組
  • (?=) 前瞻,look forward, 環(huán)視,零寬斷言,總之就是匹配個位置,這個位置需要滿足某種條件
  • 總結(jié)

    以上是生活随笔為你收集整理的Sizzle.selectors.match/leftMatch的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。