我正在尝试在Javascript中运行以下正则表达式
/[^]*?(:[rp][el]a[\w-]+)[^]*/
在ie8中,我得到Expected '/'
问题来自stylis npm lib,这是它失败的那一行
var pseudofmt = /[^]*?(:[rp][el]a[\w-]+)[^]*/ /* extrats :readonly or :placholder from selector */
错误表明它在[^]
处期望/,但我不确定为什么!?
答案 0 :(得分:0)
转义那些^
;他们否定了一个不存在的字符:^
→\^
/\^*?(:[rp][el]a[\w-]+)\^*/
(由于不需要括号,因此我将其删除)。
?或者您可能根本不想检查字符^
,而您想要的是匹配字符串的开头和结尾?请详细说明。
说明:插入符(^
)在字符组之外时,指示字符串的开头。但是,在一个字符组中,它表示该字符组是负数:[^a]
将匹配'a'以外的任何字符,而[^]
则无效。
除此之外,您的正则表达式晦涩难懂,不是很严格,甚至可能不是您想要的:它与'^^^^^^:peasant-with-slashes^^^^^^^^'
相匹配。