我正在定义一个正则表达式对象,然后在循环中匹配它。准确地说,它有时只匹配 - 每隔一段时间。所以我创建了这个问题的最小工作样本。
我在 Opera 和 Firefox 中尝试了这段代码。两者的行为相同:
>>> domainRegex = /(?:\.|^)([a-z0-9\-]+\.[a-z0-9\-]+)$/g;
/(?:\.|^)([a-z0-9\-]+\.[a-z0-9\-]+)$/g
>>> domainRegex.exec('mail-we0-f174.google.com');
Array [".google.com", "google.com"]
>>> domainRegex.exec('mail-we0-f174.google.com');
null
>>> domainRegex.exec('mail-we0-f174.google.com');
Array [".google.com", "google.com"]
>>> domainRegex.exec('mail-we0-f174.google.com');
null
>>> domainRegex.exec('mail-we0-f174.google.com');
Array [".google.com", "google.com"]
>>> domainRegex.exec('mail-we0-f174.google.com');
null
为什么会这样?这种行为是否记录在案?除了在循环体内定义正则表达式之外,还有其他方法吗?