【问题标题】:Regx look behind not support firefox正则表达式看后面不支持firefox
【发布时间】:2019-12-28 08:41:26
【问题描述】:

我正在尝试搜索字符串的开头或结尾是否存在破折号

它在 Chrome 上运行良好,但不幸的是 Firefox 尚不支持。

这是我的正则表达式代码

/^(?!-)(?!.*--)[A-Za-z0-9-]+(?<!-)$/;

我希望在火狐上也能赶上这个词:

-测试

测试-

-测试-

【问题讨论】:

标签: javascript regex firefox


【解决方案1】:

将字符集分成两部分:一部分用于(除最后一个字符之外的所有字符),另一部分用于(最后一个字符),然后简单地从最后一个字符集中删除-

/^(?!-)(?!.*--)[a-z\d-]*[a-z\d]$/i

(带有不区分大小写标志的[a-z\d] 等效于不带标志的[A-Za-z0-9]

【讨论】:

  • 非常感谢您的回答。并优化我的同步税。
  • @MarkChhunlong:请注意,这种模式完全可以不用环视来编写:/^[a-z\d]+(?:-[a-z\d]+)*$/i
  • 或者为什么不:/^\b(?:[a-z\d]|-\b)+$/i(更短但效率更低)。
  • @CasimiretHippolyte 非常感谢您的关注并提供正确答案。我对正则表达式的经验较少,无法确定哪个是最佳解决方案。
猜你喜欢
  • 2018-01-30
  • 1970-01-01
  • 2018-03-07
  • 1970-01-01
  • 2021-11-11
  • 1970-01-01
  • 1970-01-01
  • 2011-10-18
  • 1970-01-01
相关资源
最近更新 更多