Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
JavaScript正则表达式忽略大小写异常(无效组)_Javascript_Regex_Exception - Fatal编程技术网

JavaScript正则表达式忽略大小写异常(无效组)

JavaScript正则表达式忽略大小写异常(无效组),javascript,regex,exception,Javascript,Regex,Exception,我有以下正则表达式: (?i:(?:(?:(?:fbx|fo))\d+)|(?:(09|0[1-5])\s?(?:\d{2}\s?){4})(?:(@freeadsl)?)) 我在中测试了该表达式,它可以正常工作 但在javascript中,它不起作用。 在做了一次搜索之后,发现问题在于javascript不接受regex ignore case?i 解决这个问题的最好办法是什么。 任何帮助,我都会感激的,谢谢 JavaScript正则表达式引擎不支持内联修饰符组。您可以在JS正则表达式中

我有以下正则表达式:

(?i:(?:(?:(?:fbx|fo))\d+)|(?:(09|0[1-5])\s?(?:\d{2}\s?){4})(?:(@freeadsl)?))
我在中测试了该表达式,它可以正常工作

但在javascript中,它不起作用。

在做了一次搜索之后,发现问题在于javascript不接受regex ignore case
?i

解决这个问题的最好办法是什么。
任何帮助,我都会感激的,谢谢

JavaScript正则表达式引擎不支持内联修饰符组。您可以在JS正则表达式中使用
i
修饰符并删除不必要的非捕获组,以将正则表达式简化为

var rx = /(?:fbx|fo)\d+|(?:09|0[1-5])\s?(?:\d{2}\s?){4}(?:@freeadsl)?/i;
                                                                      ^
看。结尾的
/i
使模式中的字母同时匹配小写和大写字母

详细信息

  • (?:fbx | fo)\d+
    -
    fbx
    fo
    子字符串后跟1+位
  • |
    -或
  • (?:09 | 0[1-5])
    -
    09
    子串或
    0
    后跟
    1
    5
  • \s?
    -可选(1或0)空格
  • (?:\d{2}\s?{4}
    -4次出现:
    • \d{2}
      -2位数字
    • \s?
      -可选(1或0)空格
  • (?:@freeadsl)?
    -可选的
    @freeadsl
    子字符串

JS regex不支持内联修饰符。感谢您@Wiktor的回复。仅供参考,我从后端获取正则表达式,我无法更改它,但我看到您的正则表达式更好,我将向后端开发人员讨论它。谢谢你的帮助