为了账号安全,请及时绑定邮箱和手机立即绑定

数字文本组合的正则表达式

数字文本组合的正则表达式

慕标5832272 2022-06-16 14:36:00
抱歉,我对正则表达式很陌生,我需要创建一个与以下模式匹配的表达式:四个字母的数字(范围 2000 到 3000),一个字母(A 到 Z),两个字母的数字(01 到 50)因此,一个有效的表达式例如是:2199R12 或 3000B01我不知道如何开始。如果有人可以提供帮助,将非常高兴。
查看完整描述

3 回答

?
Cats萌萌

TA贡献1805条经验 获得超9个赞

这是给你的一个例子!(2\d{3}|3000)[A-z](?:0[1-9]|[1-4]\d|50)这应该只匹配您正在寻找的字符串,并且我发送的 regex101 的链接对构成正则表达式的所有单个部分进行了详细说明。

https://regex101.com/r/eq4SyY/2/


查看完整回答
反对 回复 2022-06-16
?
九州编程

TA贡献1785条经验 获得超4个赞

^((([2][0-9]{3})|([3][0][0][0]))[A-Z](([0-4][0-9])|[5][0]))$


查看完整回答
反对 回复 2022-06-16
?
吃鸡游戏

TA贡献1829条经验 获得超7个赞

这是实现这一点的正则表达式和内置语言实用程序的组合;以干净易读的方式:)


function isValid (str){

  if(str.length != 7) return false

  let fourDigits = parseInt(str.slice(0,4))

  if(!(fourDigits >= 2000 && fourDigits <= 3000)) return false;

  let isCapitalLetter = /[A-Z]/.test(str.slice(4, 5));

  if (!isCapitalLetter) return false;

  let twoDigits = parseInt(str.slice(5, 7));

  if (!(twoDigits >= 1 && twoDigits <= 50)) return false;

  return true

}

以下是一些示例测试用例:


function isValid (str){

  if(str.length != 7) return false

  let fourDigits = parseInt(str.slice(0,4))

  if(!(fourDigits >= 2000 && fourDigits <= 3000)) return false;

  let isCapitalLetter = /[A-Z]/.test(str.slice(4, 5));

  if (!isCapitalLetter) return false;

  let twoDigits = parseInt(str.slice(5, 7));

  if (!(twoDigits >= 1 && twoDigits <= 50)) return false;

  return true

}


console.log("2199R12", isValid("2199R12"));

console.log("3000B01", isValid("3000B01"));

console.log("4199R12", isValid("4199R12"));

console.log("2889x12", isValid("2889x12"));

console.log("2889A77", isValid("2889A77"));

console.log("2g99S12", isValid("2g99S12"));


查看完整回答
反对 回复 2022-06-16
  • 3 回答
  • 0 关注
  • 183 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信