RegExp适用于Chrome,但不适用于Firefox或IE11

时间:2018-02-05 08:24:49

标签: regex typescript firefox internet-explorer-11

解决

如果有人后来遇到这个问题,这就是我将RegEx更改为的内容。现在工作得很好。我删除了<之后?喜欢@WiktorStribiżew推荐。我还需要在[^]

之后添加[^ /]
var re = new RegExp('(?=(<a href="https://domainName.com/[0-9]{4,}/[0-9]{2,}/[0-9]{2,}/([^][^/]+)/">))');

原始问题

我在使用这个正则表达式在Firefox和IE 11中工作时遇到了一些麻烦。它在Chrome中没有问题。

var re = new RegExp('(?<=(<a href="https://domainName.com/[0-9]{4,}/[0-9]{2,}/[0-9]{2,}/([^]+)/">))');

目标是搜索HTML代码(由WordPress REST API返回)并查找来自给定域的链接,该链接与WordPress博客帖子链接模式匹配,然后从URL末尾获取“slug”。

以下是RegEx在Chrome中返回的内容示例:

0: ""
1: "<a href="http://domainName.com/2018/02/05/some-post-slug/">"
2: "some-post-slug"

Firefox错误:“SyntaxError:无效的regexp组”(Firefox版本58.0.1(64位))

IE11错误:“SyntaxError:意外的量词”(IE11版本11.0.9600.18893)

此代码在启用了polyfill的Angular 4应用程序中运行。我有点像RegEx noob,所以非常感谢任何帮助。

polyfills.ts

/** IE9, IE10 and IE11 requires all of the following polyfills. **/
import 'core-js/es6/symbol';
import 'core-js/es6/object';
import 'core-js/es6/function';
import 'core-js/es6/parse-int';
import 'core-js/es6/parse-float';
import 'core-js/es6/number';
import 'core-js/es6/math';
import 'core-js/es6/string';
import 'core-js/es6/date';
import 'core-js/es6/array';
import 'core-js/es6/regexp';
import 'core-js/es6/map';
import 'core-js/es6/weak-map';
import 'core-js/es6/set';

/** IE10 and IE11 requires the following for NgClass support on SVG elements */
import 'classlist.js';  // Run `npm install --save classlist.js`.

/** IE10 and IE11 requires the following to support `@angular/animation`. */
import 'web-animations-js';  // Run `npm install --save web-animations-js`.


/** Evergreen browsers require these. **/
import 'core-js/es6/reflect';
import 'core-js/es7/reflect';


/** ALL Firefox browsers require the following to support `@angular/animation`. **/
// import 'web-animations-js';  // Run `npm install --save web-animations-js`.



/***************************************************************************************************
 * Zone JS is required by Angular itself.
 */
import 'zone.js/dist/zone';  // Included with Angular CLI.



/***************************************************************************************************
 * APPLICATION IMPORTS
 */

/**
 * Date, currency, decimal and percent pipes.
 * Needed for: All but Chrome, Firefox, Edge, IE11 and Safari 10
 */
import 'intl';  // Run `npm install --save intl`.
/**
 * Need to import at least one locale-data with intl.
 */
import 'intl/locale-data/jsonp/en';

0 个答案:

没有答案