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')

間にスペースを入れてください[ ]:(^[ ]{0,255}$)/)

于 2013-03-05T08:31:22.297 に答える