【问题标题】:Javascript regex error with 'm' flag, 'invalid regexp group' when regex is valid and working elsewhere当正则表达式有效且在其他地方工作时,带有“m”标志的 Javascript 正则表达式错误、“无效的正则表达式组”
【发布时间】:2014-10-22 11:50:35
【问题描述】:

这行正则表达式在 javascipt 中中断,但是当使用正则表达式测试器时,它可以正常工作:

var pattern = new RegExp(/^(?m)^([A-Z0-9]{2,4})(?:\s*[A-Z0-9]{3})?$/);
"SL44BZ".match(pattern);

如何使用 javascript 的 .match() 进行这项工作?

它应该返回在“SL4”处拆分的两个结果的数组。

看起来这个问题与多行“(?m)”标志有关,但是如果我删除这个错误的结果会返回。

【问题讨论】:

  • ?s/?m 不支持,只能在re外指定匹配模式。
  • 还有,new RegExp在这里是多余的,pattern = /..../m

标签: javascript regex match postal-code


【解决方案1】:

var pattern = /^([A-Z0-9]{2,4})(?:\s*[A-Z0-9]{3})?$/m; "SL44BZ".match(pattern);

应该这样做,如果你还没有从 cmets 中弄清楚的话。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-03-17
    • 1970-01-01
    • 2020-08-11
    • 2016-03-25
    • 1970-01-01
    • 2010-09-07
    • 2021-06-10
    相关资源
    最近更新 更多