2015-04-01 28 views
1

基本上我的验证非常简单,但我对于正则表达式是全新的,并且需要相当快地启动它,所以这里是:1234567890123456-7890它可以是,显然,在0-9范围内的任何数字和长度必须是10或11个字符。如何编写一个正则表达式(JavaScript)进行身份验证?

你能告诉我一个方法来写这个功能吗?

+0

看到这个堆栈溢出后http://stackoverflow.com/questions/4840547/javascript-regular-expression-to-match-x-digits-only – 2015-04-01 06:15:18

回答

1
function isId(id) { 
    return /^\d{6}-?\d{4}$/.test(id); 
} 

isId("1234567890"); // true 
isId("123456-7890"); // true 
+0

谢谢!这工作完美:) – Xeen 2015-04-01 06:26:46

+0

总是欢迎@ Xeen! – 2015-04-01 06:27:20

+0

@ Xeen,但请注意,您可能希望将\ d限制为[0-9]而不是其他数字格式。是否要验证丹麦社会安全号码? – 2015-04-03 16:25:23

2

很难使用iPhone发布,但是,这里有云:

/^\d{6}-?\d{4}$/ 
  • ^ - 与
  • $开始 - 与
  • \d{6}结束 - 比赛6个位数
  • ? - 有些东西是可选的,在这种情况下,-
  • \d{4} - 匹配4位数字

所以,上述将匹配123456-78901234567890

0

如果破折号应该在任何位置是可能的:

function test_id(id) {return /^\d{10,11}$/.test(id.replace(/-/g, ''));} 

输出:

test_id('123') 
> false 
test_id('2') 
> false 
test_id('223-345-123-12') 
> true 
test_id('223-345-12312') 
> true 
+0

这几乎是完美的,但破折号只能在第6个数字后面 – Xeen 2015-04-01 06:25:14