0

我正在尝试在 IE8 的控制台中执行以下操作

new RegExp(/(^(([+]?((([0-9\u0660-\u0669]+)([\,\.\-]?[\s]?))+))+){4,255}$)|(^[]{0,255}$)/).test('1234')

并且我"Expected ']'在正则表达式中收到以下错误”,但是每当我在 Firefox 上尝试此操作时,它都会返回 true,没有任何错误。

我无法弄清楚问题出在正则表达式的哪个位置。任何帮助将非常感激。

4

2 回答 2

3

为什么不使用 (^$) 来匹配空字符串?

new RegExp(/(^(([+]?((([0-9\u0660-\u0669]+)([\,\.\-]?[\s]?))+))+){4,255}$)|(^$)/).test('')
//true
new RegExp(/(^(([+]?((([0-9\u0660-\u0669]+)([\,\.\-]?[\s]?))+))+){4,255}$)|(^$)/).test('1234')
//true
new RegExp(/(^(([+]?((([0-9\u0660-\u0669]+)([\,\.\-]?[\s]?))+))+){4,255}$)|(^$)/).test('abc')
//false

也就是说,除非您需要匹配 0 到 255 个空格以及数字部分。

于 2013-03-05T08:41:19.063 回答
2
new RegExp(/(^(([+]?((([0-9\u0660-\u0669]+)([\,\.\-]?[\s]?))+))+){4,255}$)|(^[ ]{0,255}$)/).test('1234')

在 at之间放置一个空格[ ](^[ ]{0,255}$)/)

于 2013-03-05T08:31:22.297 回答