IE8正则表达式错误预期为'/'

时间:2018-07-03 03:06:03

标签: javascript regex internet-explorer-8

我正在尝试在Javascript中运行以下正则表达式 /[^]*?(:[rp][el]a[\w-]+)[^]*/

在ie8中,我得到Expected '/'

问题来自stylis npm lib,这是它失败的那一行

var pseudofmt = /[^]*?(:[rp][el]a[\w-]+)[^]*/ /* extrats :readonly or :placholder from selector */

错误表明它在[^]处期望/,但我不确定为什么!?

1 个答案:

答案 0 :(得分:0)

转义那些^;他们否定了一个不存在的字符:^\^

/\^*?(:[rp][el]a[\w-]+)\^*/

(由于不需要括号,因此我将其删除)。

?或者您可能根本不想检查字符^,而您想要的是匹配字符串的开头和结尾?请详细说明。

说明:插入符(^)在字符组之外时,指示字符串的开头。但是,在一个字符组中,它表示该字符组是负数:[^a]将匹配'a'以外的任何字符,而[^]则无效。

除此之外,您的正则表达式晦涩难懂,不是很严格,甚至可能不是您想要的:它与'^^^^^^:peasant-with-slashes^^^^^^^^'相匹配。