有没有人可以帮我写一个正则表达式,我将用它来验证javascript中必须符合以下标准的字段(代表数字代码)?
以下是有效的:
以下不起作用:
非常感谢!!
答案 0 :(得分:2)
^(?:[*#]\d{4,6}|\d{4,6}[*#])$
您可能想要阅读一些关于正则表达式的基础知识:What absolutely every Programmer should know about regular expressions(我自己的博客文章)我在这里使用的所有内容都包含在那里。
答案 1 :(得分:2)
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));
答案 2 :(得分:1)
不知道这是否更合理。 在node.js中测试:
var x = new RegExp(/^[*#]\d{4,6}$|^\d{4,6}[*#]$/);
答案 3 :(得分:1)
这对你有用;
var expression = /^([*#]?\d{4,6}|\d{4,6}[*#]?)$/;
匹配的地方总是必须至少在*或#即不仅仅是1234
var expression = /^([*#]\d{4,6}|\d{4,6}[*#])$/;