JavaScript中的Regex帮助,用于验证和提取最后一个数字

JavaScript中的Regex帮助,用于验证和提取最后一个数字,javascript,jquery,regex,Javascript,Jquery,Regex,我希望根据JS/JQuery中的以下模式验证输入文本: P-1-A100 或 R-5-M42 或 P-10-B99等 文本基本上需要包含以下六个部分: 单字符p或R后跟 单个'-'后跟 后跟1个或多个数字的任意数字 单个'-'后跟 任何字母表(A-Z)后跟 具有1个或多个数字的任何数字 我也需要照顾转义角色吗。 如何确保输入文本与正则表达式匹配 如果匹配,如何从输入文本中提取最后一部分(编号)。 我试过这个,但对我不起作用 var isMatch=inputText.match([PR]-\d+

我希望根据JS/JQuery中的以下模式验证输入文本:
P-1-A100

R-5-M42
P-10-B99等

文本基本上需要包含以下六个部分:

  • 单字符p或R后跟

  • 单个'-'后跟

  • 后跟1个或多个数字的任意数字
  • 单个'-'后跟
  • 任何字母表(A-Z)后跟
  • 具有1个或多个数字的任何数字
  • 我也需要照顾转义角色吗。 如何确保输入文本与正则表达式匹配

    如果匹配,如何从输入文本中提取最后一部分(编号)。 我试过这个,但对我不起作用


    var isMatch=inputText.match([PR]-\d+-[A-Z]+\d+)

    您只需要将组添加到正则表达式中

    var match = inputText.match(/^[PR]-\d+-[A-Z]+(\d+)$/);
    
    若匹配项不为空,则数字将位于数组中的位置
    match[1]

    var number = match ? match[1] : null;
    
    编辑:
    按照Aaron的建议添加了锚。

    可能吧?在你感兴趣的文本子模式周围使用一个捕获组。看到了吗,这就像一个符咒!谢谢Wiktor!