我有一个性能非常差的正则表达式,目前它使 Firefox、Chrome 和 IE 挂起一段时间。
这是正则表达式:
^([a-zA-Z0-9]+[/]?)+[a-zA-Z0-9]+$
它是一种 url 匹配器,但应该只匹配请求的路径(不以斜杠开头或结尾)。
有效示例:
- 分割
- 分割市场
- 段/段/段(等)
无效示例:
- /段
- 分割/
- 段/段/
在所有三个浏览器上使用上面的正则表达式并使用两个或多个斜线会导致浏览器挂起。
这显然是一个格式不佳的正则表达式,但任何人都可以帮助构建一个更好的正则表达式吗?
谢谢,
最佳答案
更好的是更确定的,并且没有捕获组:
^[a-zA-Z0-9]+(?:/[a-zA-Z0-9]+)*$
这样您就不会有重叠的组,也不会捕捉到不必要的东西。
关于javascript - 表现不佳的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2691563/