我有一個正則表達式用來檢查是否值至少有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