首页 > 解决方案 > 正则表达式后视表达式与 IE 不兼容

问题描述

我正在使用这个正则表达式作为输入。当我在 Chrome 中尝试时,它运行良好,但在 IE 中尝试时却不行。我正在使用的正则表达式编辑器告诉我负面的后视表达式不适用于某些浏览器。

如何调整表达式以使其适用于 IE?我正在使用它来使输入无法以 / 结束。

(^(?!.*\/\/)^(?!^\/)[A-Za-z0-9\/\-?:().,'+\s]+(?<!\/))

否定的后视表达式在 IE 中不起作用:

(?<!\/))

提前致谢并致以最诚挚的问候。

标签: angularjsregexng-pattern

解决方案


如果您不想/在字符串末尾添加 a,则可以添加另一个前瞻。

^(?!.*\/\/)^(?!^\/)(?!.*\/$)[A-Za-z0-9\/\-?:().,'+\s]+

正则表达式演示

/但在这种情况下,使用不在字符类中但可选地在字符类之前重复的版本可能更容易。

这样,它就不会出现在字符串的开头或结尾,也不能出现在字符串的开头或结尾。//

^[A-Za-z0-9?:().,'+\s-]+(?:\/[A-Za-z0-9?:().,'+\s-]+)*$

正则表达式演示


推荐阅读