麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 編程 > Regex > 正文

javascript的正則表達式學習資料復習

2020-03-16 21:11:27
字體:
來源:轉載
供稿:網友
這里主要記錄幾個自己之前不是很熟悉的知識點,其他的知識點,上面兩個網站中已有詳細的參考
 
 
關于反向引用 
復制代碼代碼如下:

// 測試函數 
function matchReg(reg, str) { 
var result = str.match(reg); 
if(result) { 
console.dir(result); 
} else { 
console.log('match failed'); 



var reg = /([A-Za-z]{0,6})/1/; 
var str = 'AndrewAndrew'; 
// 測試通過 
matchReg(reg, str); 

//通過(?:pattern)的方式,不記錄子表達式匹配的內容(本例中為Andrew) 
//所以/1對子表達式匹配內容的引用失敗了 
//注意:這里強調的是子表達式所匹配的內容,而不是子表達式本身 
reg = /(?:[a-zA-Z]{0,6})/1/; 
// 測試不通過 
matchReg(reg, str); 

關于子表達式的定義 
var parse_number = /^-?/d+(?:/./d*)?(?:e[+/-]?/d+)?$/i; 
這是一個解析數字的正則表達式,其中的子表達式有(?:/./d*)和(?:e[+/-]?/d+) 
/.和/-分別是對.和-的轉義表達 
順便復習下.表示除換行符以外的其他字符 
-一般用于[a-zA-Z0-9]表示匹配范圍 
如果其中沒?:例如(/./d*)那么按照先后順序,反向引用的關系如下 
/1-->(/./d*) 
/2-->(e[+/-]?/d+) 
如果有更多的話,就以此類推/3 /4 /5.... 
再次強調,引用的是子表達式匹配的內容,是具體的文本 
關于正向預查 
復制代碼代碼如下:

var reg = /I like (?=shanghai)/; 
var str = 'I like shanghai'; 
matchReg(reg, str); //測試通過 

str = 'I like beijing'; 
matchReg(reg, str); //不通過 

跑下上面的代碼,就馬上理解什么算是正向預查了,如上面的例子,通過(?=pattern)的形式,正則 表達式預測下后面的內容是不是符合要求,如果是那就順利匹配. 
相對地,(?!=pattern)的使用意圖正好與(?=pattern)相反,就不復述了 
關于貪心和非貪心匹配模式 
復制代碼代碼如下:

// 貪心 
var reg = //d{1,}/; 
var str = '1999'; 
matchReg(reg, str); // result[0]為1999 能多匹配就多匹配 

// 非貪心 
reg = //d{1,}?/; 
matchReg(reg, str); // result[0]為1 只匹配了一個 

從上面的結果很容易看出"貪心"和"非貪心"的含義 
pattern?這就表明非貪心匹配模式,一般情況就是貪心的 
關于Regexp對象exec函數返回的結果 
復制代碼代碼如下:

// 關于返回結果是個什么 
// matchReg函數中console.dir(result)能說明問題,firebug中一看便知 
關于string的replace函數 
function camelize(str) { 
return str.replace(/-(/w)/g, function(inputStr, p1) { 
console.log(p1); 
return p1.toUpperCase(); 
}); 

console.log(camelize('background-color')); 

function uncamelize(str, sep) { 
sep = sep || '-'; 
return str.replace(/([a-z])([A-Z])/g, function(inputStr, p1, p2) { 
console.log('p1:%s, p2:%s', p1, p2); 
return p1 + sep + p2; 
}); 

console.log(uncamelize('backgroundColor', '-')); 

上面兩個例子,主要用于說明replace函數的用法,當然還有search,split等函數可以充分利用正則表達式的優勢 
關于javascript正則表達式的最佳實踐 
就一句話:盡量的精簡,不要復雜,利于讀懂和維護!

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 精品国产乱码久久久久久丨区2区 | 欧美亚洲国产成人 | 国产91大片| 欧美一级做性受免费大片免费 | 中国3xxxx| 国产一级淫片在线观看 | 777sesese| av在线免费网 | 激情av在线 | h久久| 成人爽a毛片免费啪啪红桃视频 | 亚洲天堂字幕 | 久久久久久久久久久高潮一区二区 | 成人精品aaaa网站 | 久国产| 私库av在线免费观看 | 操你啦免费视频 | 精品一区二区久久久久久久网精 | 精精国产xxxx视频在线野外 | chinesegv男男猛男无套 | 国产一区二区成人在线 | 手机av在线电影 | 一道本不卡一区 | av在线等 | 草草久久久 | 日本在线视频免费观看 | 国产亚洲精品网站 | 欧美精品免费一区二区三区 | 久久久久久久午夜 | 成人国产高清 | 激情视频免费观看 | 国产精品视频一区二区三区四区五区 | 日本人乱人乱亲乱色视频观看 | 免费观看黄色片视频 | 国产精品99久久久久久久女警 | 成人免费毛片一 | 国产一区二区精品在线观看 | av黄色片网站 | hd性videos意大利复古 | 亚洲操比视频 | 黄色一级片在线观看 |