正则表达式匹配数字码(数字、星号和锐)

Regex to match a digicode (digit, star and sharp)

本文关键字:数字 正则表达式      更新时间:2023-09-26

谁能帮我写一个正则表达式,我将用它来验证 javascript 中必须符合以下条件的字段(表示数字代码)?

  • 需要有 4 到 6 个数字(0 到 9)
  • 开头或结尾需要有 1 *(星号)或 1#(尖锐)

所以以下工作:

  • 1234年*
  • *12345
  • 56789#
  • #456789

并且以下内容不起作用:

  • 1234
  • 1×234
  • *
  • 1234*
  • *1234#
  • 1234*#
  • 阿克德

非常感谢!!

^(?:[*#]'d{4,6}|'d{4,6}[*#])$

在正则表达式上看到它

你可能想阅读一些关于正则表达式的基础知识:每个程序员都应该知道的关于正则表达式的知识(我自己的博客文章)我在这里使用的所有内容都在那里介绍。

var s,
    rg1=/^[*#]'d{4,6}$/,
    rg2=/^'d{4,6}[*#]$/;
s="1234*"; console.info(rg1.test(s)||rg2.test(s));
s="*12345"; console.info(rg1.test(s)||rg2.test(s));
s="56789#"; console.info(rg1.test(s)||rg2.test(s));
s="#456789"; console.info(rg1.test(s)||rg2.test(s));
s="1234"; console.info(rg1.test(s)||rg2.test(s));
s="1*234"; console.info(rg1.test(s)||rg2.test(s));
s="*1234*"; console.info(rg1.test(s)||rg2.test(s));
s="*1234#"; console.info(rg1.test(s)||rg2.test(s));
s="1234*#"; console.info(rg1.test(s)||rg2.test(s));
s="abcde"; console.info(rg1.test(s)||rg2.test(s));

不知道这是否可以更优化。在节点.js中测试:

var x = new RegExp(/^[*#]'d{4,6}$|^'d{4,6}[*#]$/);

这应该适合您;

var expression = /^([*#]?'d{4,6}|'d{4,6}[*#]?)$/;

并且匹配始终必须至少在 * 或 # 上,即不仅仅是 1234

var expression = /^([*#]'d{4,6}|'d{4,6}[*#])$/;