猿问

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

抱歉,我对正则表达式很陌生,我需要创建一个与以下模式匹配的表达式:

四个字母的数字(范围 2000 到 3000),一个字母(A 到 Z),两个字母的数字(01 到 50)

因此,一个有效的表达式例如是:2199R12 或 3000B01

我不知道如何开始。如果有人可以提供帮助,将非常高兴。


慕标5832272
浏览 184回答 3
3回答

Cats萌萌

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

九州编程

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

吃鸡游戏

这是实现这一点的正则表达式和内置语言实用程序的组合;以干净易读的方式:)function isValid (str){&nbsp; if(str.length != 7) return false&nbsp; let fourDigits = parseInt(str.slice(0,4))&nbsp; if(!(fourDigits >= 2000 && fourDigits <= 3000)) return false;&nbsp; let isCapitalLetter = /[A-Z]/.test(str.slice(4, 5));&nbsp; if (!isCapitalLetter) return false;&nbsp; let twoDigits = parseInt(str.slice(5, 7));&nbsp; if (!(twoDigits >= 1 && twoDigits <= 50)) return false;&nbsp; return true}以下是一些示例测试用例:function isValid (str){&nbsp; if(str.length != 7) return false&nbsp; let fourDigits = parseInt(str.slice(0,4))&nbsp; if(!(fourDigits >= 2000 && fourDigits <= 3000)) return false;&nbsp; let isCapitalLetter = /[A-Z]/.test(str.slice(4, 5));&nbsp; if (!isCapitalLetter) return false;&nbsp; let twoDigits = parseInt(str.slice(5, 7));&nbsp; if (!(twoDigits >= 1 && twoDigits <= 50)) return false;&nbsp; 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"));
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答