正则表达式 - 后跟

Cod*_*ler 6 javascript regex

如何编写与此匹配的正则表达式

123/456

123/456/?
Run Code Online (Sandbox Code Playgroud)

但不是这个

123/456/
Run Code Online (Sandbox Code Playgroud)

我想在第二个/必须跟着一个?

例如,我希望它与此匹配

'123/456'.match(X) // return ['123/456']
'123/456/?'.match(X) // return ['123/456/?']
'123/456/'.match(X) // return null
Run Code Online (Sandbox Code Playgroud)

更新

我错过了一个重要的事情.它不能以'?'结尾,像'123/456 /?hi'这样的字符串也应匹配

spl*_*ash 5

您可以尝试以下正则表达式: \d{3}/\d{3}(/\?.*)?

会匹配

  • 3位数
  • 跟一个 /
  • 后跟3位数字
  • 后跟/?any_text(例如/?hi)(可选)

本示例使用诸如^和的正则表达式锚$,但是如果您仅尝试与目标字符串匹配,则不需要它们。

var result = '123/456/?hi'.match(/\d{3}\/\d{3}(\/\?.*)?/);
if (result) {
    document.write(result[0]);
}
else {
    document.write('no match');
}
Run Code Online (Sandbox Code Playgroud)