【发布时间】:2017-08-25 12:05:05
【问题描述】:
我编写了这个非常简单的正则表达式,它检查整个字符串是否代表一个或多个十六进制数字(可选以“0x”开头,以逗号、减号或空格字符分隔):
/^((0x)?[0-9A-F]+[,\-\s]*)+$/i
对我来说,这个正则表达式非常简单,但是这个简单的测试完全使 Firefox 和 Edge 崩溃,Chrome 占用 100% CPU 使用大约 15 秒,然后返回预期结果“false”:
/^((0x)?[0-9A-F]+[,\-\s]*)+$/i.test("012345678901234567890123456789_0");
有人知道这里出了什么问题吗?
【问题讨论】:
标签: javascript regex performance hex