我有一个正则表达式用来检查是否值至少有10个数字:的Javascript正则表达式的问题
if (foo.match(/^\d{10,}$/))
{
// At least 10 digits
}
但是我想在2个步骤来划分的验证,所以首先我检查,如果foo
得到了唯一的编号,并没有其他字符,然后我检查它是否至少有10位数字。
我可以使用foo.length
来检查10位数字部分,但是如何更改上面的正则表达式来检查foo是否只有数字。有任何想法吗?
我有一个正则表达式用来检查是否值至少有10个数字:的Javascript正则表达式的问题
if (foo.match(/^\d{10,}$/))
{
// At least 10 digits
}
但是我想在2个步骤来划分的验证,所以首先我检查,如果foo
得到了唯一的编号,并没有其他字符,然后我检查它是否至少有10位数字。
我可以使用foo.length
来检查10位数字部分,但是如何更改上面的正则表达式来检查foo是否只有数字。有任何想法吗?
一个解决方案:从“10个以上”改变资格“一个或多个”,正是如此:
if (foo.match(/^\d+$/))
{
// At least 1 digit
}
如果空字符串是可接受的,使用*
代替+
以匹配“零个或多个”。
你已经检查它只有数字。您指定的字符串开始^
,后面至少十个位数的模式必须匹配,紧接着字符串结束$
潜行任何非数字的存在,我们的模式将不匹配
这意味着,如果你想把你的测试分成两个步骤,比如说有两个不同的错误消息,你可以先检查长度,然后仍然使用该正则表达式模式。
if (foo.match(/^\d+$/)) {
//all digits
if(foo.length == 10) {
//all digits + 10 lenght
//do whatever
}
} else {
//issue error message
}
这是一种方法。虽然我不明白你为什么需要这样做。你自己的正则表达式已经保证了是为10个字符长,这些10个字符不能是别的然后是数字
如果输入有非数字,请将支票分开以发出不同的错误消息。 – mob 2009-11-10 17:43:27
var containsOnlyNumbers = /^\d+$/.test(foo);
失败,如果
foo.match(/\D/)
// Invalid: A non-digit is present
if (foo.match(/\D/)) {
console.warn("Only numbers accepted");
}
// Invalid: foo is all digits, but less than 10 digits
else if (foo.length < 10) {
console.warn("Minimum 10 digits required");
}
// foo is valid
else {
console.info("Great success");
}
+1一样我删除评论 – 2009-11-10 17:40:32
我不想先检查长,我要检查其数字或不先。请在回答之前阅读问题 – 2009-11-10 17:48:50