我试图找出只接受以下字符串的正则表达式.

  • 7号和8号:"1234567"和"12345678"

  • 以T开头的7和8个数字:"T234567"和"T2345678"

  • 7和8个以D开头的数字:"D234567"和"D2345678"

  • 7和8个以TD开头的数字:"TD34567"和"TD345678"

我的正则表达式是:

/^(T|[0-9]){1}(D|[0-9]){1}([0-9]){5,6}$/

但它没有通过我对"D234567"和"D2345678"的单元测试

推荐答案

你可以把模式写成:

^(?:\d{7,8}|[TD]\d{6,7}|TD\d{5,6})$

Explanation

  • ^开始串
  • (?: Non capture group for the alternatives
    • \d{7,8}匹配7-8个数字
    • |
    • [TD]\d{6,7}匹配TD以及6-7位数
    • |
    • TD\d{5,6}匹配TD和5-6位数
  • )关闭非捕获组
  • $弦的末端

Regex demo.

Javascript相关问答推荐

如何制作删除按钮以从列表中删除该项目所属的项目?

设置默认值后动态更新japbox或调色板

使用print This时, map 容器已在LeafletJS中初始化

*ngFor和@代表输入decorator 和选角闭合

在页面上滚动 timeshift 动垂直滚动条

TypeScript索引签名模板限制

setcallback是什么时候放到macrotask队列上的?

无法从NextJS组件传递函数作为参数'

cypress中e2e测试上的Click()事件在Switch Element Plus组件上使用时不起作用

如何在文本字段中输入变量?

在运行时使用Next JS App Router在服务器组件中运行自定义函数

如何在JAVASCRIPT中合并两组对象并返回一些键

一个实体一刀VS每个实体多刀S

与svg相反;S getPointAtLength(D)-我想要getLengthAtPoint(x,y)

未捕获的运行时错误:调度程序为空

JavaScript&;Reaction-如何避免在不使用字典/对象的情况下出现地狱?

在Java脚本中构建接口的对象

我如何才能获得价值观察家&对象&S的价值?

无法向甜甜圈图表上的ChartJSImage添加可见标签

找不到处于状态的联系人