正则表达式匹配数字码(数字、星号和锐)
Regex to match a digicode (digit, star and sharp)
谁能帮我写一个正则表达式,我将用它来验证 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}[*#])$/;
相关文章:
- 正则表达式与数字中的第二个点匹配
- 正好包含2个大写字母和3个数字的正则表达式
- 键按下上的正则表达式 仅限制数字
- 使用正则表达式匹配长度为六个字符的字母数字字符串
- 为什么这个正则表达式不't匹配最后一个字母数字字符
- 正则表达式(JavaScript),用于创建数字必须大于x的数据验证
- 用于删除紧跟在非数字后面的零的正则表达式
- XXXXXX的正则表达式.XX格式的数字
- 将字符串拆分为数值和非数字正则表达式
- 将分数替换为分数正则表达式,将数字替换为数字正则表达式
- Javascript字母数字正则表达式不采用换行符
- Javascript仅输入数字正则表达式
- 数字正则表达式导致jshint'错误或不必要的转义'错误
- 字母数字正则表达式javascript
- JavaScript:查找匹配的数字正则表达式
- Javascript数字正则表达式测试失败-无法找出原因
- 欧洲数字正则表达式
- 如何在数字正则表达式中允许空格
- Javascript:如何检查字符串中是否存在两个数字?(正则表达式)
- 匹配字符串部分并检索非邻近数字正则表达式