繁体   English   中英

JS正则表达式以匹配两种可能的组合

[英]JS regex to match two possible combinations

我需要捕获字母的某种组合,后跟一个数字(任意数量),以一个称为input的变量表示。 字母是严格的,数字不是。 字母或者在字符串的开头,也可以在反斜杠之后。

因此,例如,我需要不区分大小写地捕获:

  • ab12345678google
  • cd4321newyorkpost
  • 什么\\这里\\ ab1357
  • 东西\\太\\ cd2468

对于这些,我有一个有效的简单规则(两个规则):

input.value.match(/^(ab|cd)[0-9]+/i) || input.value.match(/\\(ab|cd)[0-9]+/i)

但是,也有可能在我还需要捕获的设置字母之前(从头开始或在反斜杠之后)存在一个名为test的字符串。 因此,除了仅捕获给定的两个字母外,我还需要捕获这些出现的情况,在字母之前的test是严格因素的情况下,例如:

  • testcd4321newyorkpost
  • 什么\\这里\\ testab1357

我很确定可以在匹配查询中放置某种“可选”查询,而无需单独重写test规则,但是与regex一样,我不确定我在这里要看什么?

您可以使用此正则表达式:

(?:^|\\)(?:test)?(?:ab|cd)\d+

这是:

  • 比赛开始或\\
  • 匹配可选的字符串test
  • 匹配abcd
  • 匹配1个以上的数字

为什么不只是将文本test设为可选?

(?:test)?(ab|cd)[0-9]+

应该适合您的任何情况。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM