亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > Regex > 正文

關于IE的RegExp.exec的問題

2020-03-16 21:13:49
字體:
來源:轉載
供稿:網友
問題:"A[B]C[D]E[F]G"將其分為兩個數組,分別是 ACEG 和 [B][D][F].
 
 
代碼如下: 
復制代碼代碼如下:

var st="A[B]C[D]E[F]G"; 
var reg =//[/w/]/ig; 
var s1 = st.replace(reg,""); 
var s2=[]; 
var arr; 
while((arr=reg.exec(st))!=null)s2.push(arr[0]); 
alert(s1); 
alert(s2.join("")); 


FF下正確顯示,IE下S2為空. 

網上查不到資料,請各位指點一二. 

查詢過程中得了個意外收獲 
復制代碼代碼如下:

var st="A[B]C[D]E[F]G"; 
var reg =//[/w/]/ig; 
var s1 = st.replace(reg,""); 
var s2=[]; 

var arr; 
while((arr=//[/w/]/ig.exec(st))!=null)s2.push(arr[0]); 
alert(s1); 
alert(s2.join("")); 

該寫法IE死循環RegExp的lastIndex沒有得到更新 

In some recent code, I'm using Javascript to parse through the result set of an AJAX call, which happens to be returning a full HTML page. Yes, ideally, I'd have an AJAX call return something usable like JSON, but in this case the PHP back-end code had to remain as is and the front-end adjust to handle the legacy HTML it returned. 
I needed to grab a link (1 or more) from the returned HTML page so that I could immediately display those links in separate windows (each was a generated report). So, my first stab at this is shown in the following code example. Basically, we have setup a string to represent the returned HTML, in this case it contains 3 <a> links; and we want to use the standard Javascript RegExp object's exec() method to grab the URLS (href parameter) for each of those links. In our example, we just print them out in an unordered list to see what we've captured. The important lines of code we'll be looking at are highlighted in the example below. 
復制代碼代碼如下:

var s='<a href="x">X</a>/n<a href="y">Y</a>/n<a href="z">Z</a>/n'; 
document.write('Found the following link URLs in the string:<br/><ul>'); 
while (matches = /<a href=['"](.*)['"]>.*<//a>/g.exec(s)) { 
document.write('<li>' + matches[1] + '</li>/n'); 

document.write('</ul>'); 

Which, when run, we get the following results in Firefox/Safari/Chrome: 
Found the following link URLs in the string: 



Our while loop using RegExp.exec() on our in-line regular expression does what it's supposed to and continues to match from where it left off in the string giving us our captured portion in the matches[] array. However, when run in Internet Explorer, we get the following lovely result (at least up until IE tells us the script is no longer responding and asks us to kill it): 
Found the following link URLs in the string: 









…ad infinitum… 
Obviously, we have generated an infinite loop using our code above in IE; but why? The issue is that IE doesn't correctly maintain the lastIndex member for the regular expression object each iteration through the loop. Each time through the loop, which if you look at the highlighted code is in-lined, IE creates a new RegExp object and hence resets the lastIndex member to the beginning of the string. Therefore, we match the first link in the string infinitely as the lastIndex pointer never progresses between matches. There is a way around this, and that is to declare the regular expression separately, outside the loop, (it gets created just once) and then call exec() on that singular RegExp object as follows: 
復制代碼代碼如下:

var rx = /<a href=['"](.*)['"]>.*<//a>/g; 
var s='<a href="x">X</a>/n<a href="y">Y</a>/n<a href="z">Z</a>/n'; 
document.write('Found the following link URLs in the string:<br/><ul>'); 
while (matches = rx.exec(s)) { 
document.write('<li>' + matches[1] + '</li>/n'); 

document.write('</ul>'); 

Now, the lastIndex member of our RegExp object gets updated correctly and we get the results we expected. Somewhat related to this item is the following interesting lastIndex bug in IE with zero-length matches. Hopefully, this will save someone a headache when trying to debug using Javascript RegExp.exec().

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
8050国产精品久久久久久| 欧美三级欧美成人高清www| 国产啪精品视频网站| 国产有码在线一区二区视频| 国产999精品久久久| 亚洲xxxx做受欧美| 精品亚洲一区二区三区四区五区| 91久热免费在线视频| 91麻豆桃色免费看| 亚洲人精选亚洲人成在线| 欧美激情视频在线免费观看 欧美视频免费一| 国产一区二区三区久久精品| 欧美高清视频在线播放| 亚洲免费视频观看| 最近2019中文字幕大全第二页| 尤物yw午夜国产精品视频明星| 欧美黄色性视频| 国产日韩在线免费| 成人免费激情视频| 亚洲美女免费精品视频在线观看| 欧美电影免费观看| 97碰碰碰免费色视频| 这里精品视频免费| 欧美成人剧情片在线观看| 欧美日韩国产精品一区二区三区四区| 国产在线精品成人一区二区三区| 亚洲国产成人精品久久久国产成人一区| 欧美做受高潮1| 伊人久久五月天| 亚洲美女av在线播放| 韩国福利视频一区| 上原亚衣av一区二区三区| 在线看日韩欧美| 久久综合伊人77777尤物| 国产精品69av| 91夜夜未满十八勿入爽爽影院| 国产亚洲精品va在线观看| 亚洲国产精品免费| 日韩欧美国产黄色| 欧美综合国产精品久久丁香| 日韩毛片在线观看| 欧美电影免费观看电视剧大全| 欧美午夜视频一区二区| 亚洲色图色老头| 8x拔播拔播x8国产精品| 亚洲国产另类久久精品| 亚洲最新av在线网站| 欧美与欧洲交xxxx免费观看| 狠狠操狠狠色综合网| 欧美日韩人人澡狠狠躁视频| 国产欧美日韩综合精品| 久久国产精品网站| 日韩电影第一页| 国产精品私拍pans大尺度在线| 高清一区二区三区四区五区| 日韩电影中文字幕av| 国产精品私拍pans大尺度在线| 一本色道久久综合亚洲精品小说| 欧美国产欧美亚洲国产日韩mv天天看完整| 国产亚洲一区二区精品| 欧美孕妇性xx| 亚洲日韩欧美视频| 国产精品久久久久久婷婷天堂| 国产精品女主播| 成人情趣片在线观看免费| 亚洲国产女人aaa毛片在线| 欧美在线视频一区二区| 日韩av一卡二卡| 久久国产精品久久国产精品| 日韩av中文字幕在线免费观看| 国产噜噜噜噜噜久久久久久久久| 亚洲精品国产综合区久久久久久久| 69视频在线免费观看| 国产成人精品久久亚洲高清不卡| 国产精品国产自产拍高清av水多| 欧美午夜美女看片| 国产suv精品一区二区三区88区| 国产主播在线一区| 日韩大片免费观看视频播放| 国产激情久久久久| 日韩精品中文字| 国产精品久久久久影院日本| 美日韩丰满少妇在线观看| 精品精品国产国产自在线| 日韩亚洲精品电影| 亚洲国产成人在线视频| 992tv在线成人免费观看| 国产在线不卡精品| 在线国产精品视频| 久久6免费高清热精品| 国产婷婷97碰碰久久人人蜜臀| 亚洲天堂开心观看| 日韩免费在线观看视频| 尤物九九久久国产精品的分类| 中文字幕日韩在线播放| 91免费版网站入口| 成人欧美一区二区三区在线湿哒哒| 日韩成人小视频| 国产99视频在线观看| 久久国产精品99国产精| 国产在线不卡精品| 性欧美办公室18xxxxhd| 狠狠综合久久av一区二区小说| 欧美亚洲成人xxx| 亚洲视频精品在线| 91久久久亚洲精品| 亚洲精品国产拍免费91在线| 亚洲精品电影在线观看| 欧美日韩第一页| 亚洲人成电影在线观看天堂色| 精品亚洲一区二区三区四区五区| 成年人精品视频| 欧美国产日韩视频| 2019中文字幕在线免费观看| 亚洲综合在线播放| 2019国产精品自在线拍国产不卡| 日韩精品亚洲视频| 一区二区三区四区精品| xvideos成人免费中文版| 一区二区三区黄色| 日韩经典一区二区三区| 午夜精品三级视频福利| 国产视频999| 欧美亚洲成人免费| 亚洲激情国产精品| 成人黄色激情网| 黑人巨大精品欧美一区二区三区| 久久在线视频在线| 91精品久久久久久久久| 亚洲欧美日韩直播| 午夜精品久久久久久久99热| 国产a∨精品一区二区三区不卡| 欧美视频中文字幕在线| 日韩中文字在线| 美乳少妇欧美精品| 久久精品国产精品| 久久免费成人精品视频| 热久久视久久精品18亚洲精品| 欧美一区二区三区艳史| 久久久久九九九九| 91免费福利视频| 国产+成+人+亚洲欧洲| 国产精品99久久久久久久久| 亚洲少妇中文在线| 国产成人激情视频| 欧美一级免费看| 精品国产1区2区| 精品国产欧美成人夜夜嗨| 欧美日韩免费网站| 国产精品h在线观看| 日本欧美国产在线| 亚洲精品按摩视频| 国产成人精品综合久久久| 中文字幕精品影院| 97视频在线观看视频免费视频| 精品久久久久久久久久国产| 成人a免费视频| 亚洲国产成人久久综合一区| 欧美日韩一区二区免费在线观看| 欧美老少配视频| 成人福利视频在线观看| 亚洲欧美日韩第一区| 日韩高清电影免费观看完整| 欧美猛交免费看|