javascript - IE8 正则表达式错误应为“/”
问题描述
我正在尝试在 Javascript 中运行以下正则表达式
/[^]*?(:[rp][el]a[\w-]+)[^]*/
在 ie8 我得到Expected '/'
问题来自 stylis npm lib,这是它失败的行
var pseudofmt = /[^]*?(:[rp][el]a[\w-]+)[^]*/ /* extrats :readonly or :placholder from selector */
错误说它需要 / at[^]
但我不知道为什么!?
解决方案
逃离那些^
s; 他们正在否定一个不存在的角色:^
→\^
/\^*?(:[rp][el]a[\w-]+)\^*/
(我删除了括号,因为它们是不必要的)。
¿ 或者您可能根本不想检查字符^
,而您想要的是匹配字符串的开头和结尾?请详细说明。
解释:插入符号 ( ^
) 在字符组之外时,表示字符串的开头。但是,在字符组内,它表示字符组是否定的:[^a]
将匹配除 'a' 之外的任何字符,而[^]
无效。
除此之外,您的正则表达式晦涩难懂,不是很严格,而且可能不是您想要的:它匹配'^^^^^^:peasant-with-slashes^^^^^^^^'
.
推荐阅读
- opencart - 在 opencart 中查找重复订单
- css - 如何使用子 div 之间固定间距的 flexbox 制作网格?
- c# - asp.net core 中的 MVC 架构模式
- python - 如何使 SQLAlchemy 在提交之前不与数据库通信?
- javascript - 如何将 blob url 从 js 文件导出到 nuxt.js 中的 vue 文件?
- javascript - 解决 Yarn 对不同包的依赖
- java - 如何打印堆插入的结果(java)
- c# - 添加这条线(FPS)后,为什么我不能在 Unity3D 中水平查看?
- reactjs - 如何将 React(使用 Solidity 智能合约)部署到 S3 而不会出错
- python - 如何在 ursina python 中增加 FPS