2013-10-23 64 views
0

我有以下一段代碼(已發給我)檢查'用戶名'字段的10位數字。該字段必須完全是10位數字才能繼續。它必須沒有字母或特殊字符 - 只是數字。有人可以修復此片段,以便其正常工作?目前,它讓所有的東西都通過 - 無論是文本,數字,短,長......無論如何。下面的代碼:檢查Javascript中數值字段的長度

function checkUsername() { 
    var exp = /^\d{10}$/; 
    if (entered.length(exp) >10 && entered.length(exp) <=9) { 
    alert("Username is not in the proper format. You are an idiot."); 
    return false; 
    } 
    return true; 
} 
+0

它不能大於10小於等於9.你想要一個「或」('||')不是「和」('&&')。所以也許少一點白癡言論。 :) –

+0

什麼是'進入'?聲明在哪裏? –

+1

呃。我認爲'進入'是爲了保持用戶名的全局變量?應該作爲參數傳入。無論如何,'entered.length(regex)'意味着什麼?這是胡言亂語。 –

回答

2

正則表達式測試將返回truefalse,也不會返回字符串的長度。

var exp = /^\d{10}$/; 
if(exp.test(entered)) 
{ 
    // test passed, go through 
} 

而不要打電話給你的用戶笨蛋,用戶犯錯誤;)這是可以預料的。

+0

這個'白癡'部分是我只是在測試中獲得樂趣。它沒有像那樣進入生產。 –

0

HMN它的一個猜測,但我認爲這應該工作, 如果正則表達式中的任意字符用輸入(確保此變量存在),或者進入較小euqal 9匹配,you're白癡

function checkUsername() { 
    var exp = /[^\d.]/g; 

    if (entered.match(exp) || entered.length <=9) { 
    alert("Username is not in the proper format. You are an idiot."); 
    return false; 
} 
    return true; 
} 
+0

現在長度檢查似乎是多餘的。 – recursive

+0

你是什麼意思?如果裏面有一個非法字符,它將返回錯誤,如果裏面沒有非法字符,那麼它只會返回false,如果長度<= 0 –

+0

如果字符串長度不是10位數字,則正則表達式不能爲真,長度檢查沒有意義,一旦你已經*檢查了長度。 –