2016-03-03 280 views
0

因此,作爲學校工作的一部分,我需要在java腳本中驗證電話號碼。我瀏覽了幾頁,但沒有一篇是關於我需要的格式,我無法將其轉換爲一種格式。我需要做的是驗證輸入的數字是否符合以下標準:以0開始,只有數字,並且在前3個字母之後有一個破折號。舉個例子:052-7221945我需要那種號碼才能被接受。幫助將不勝感激。在javascript中驗證電話號碼

+5

歡迎來到StackOverflow!我們不會爲你做你的功課。請向我們展示您爲解決問題所做出的真誠努力,我們將幫助您解決您遇到的問題。有關本網站如何工作的更多信息,請參閱幫助文檔。(http://stackoverflow.com/help/asking) – Blazemonger

+0

祝您的教育順利。你將需要它。 –

回答

0
<script> 
function Myfuc() { 
    var x = document.forms[0]["mobile"].value; 
    var z = document.forms[0]["mobile1"].value; 
if(x == null || x == '') 
    { 
     alert("Field canot be empty"); 
     return false; 
    } 

    if(x[0]!=0) // Starting with zero 
    { 
     alert("Mobile number should start with Zero"); 
     return false; 
    } 
    var y=isNaN(x); // Checking numerals in first text box 
    if(y == true) 
    { 
     alert("Integers only accepted"); 
     return false; 
    } 
    var z1=isNaN(z); // Checking numerals in first text box 
    if(z1 == true) 
    { 
     alert("Integers only accepted"); 
     return false; 
    } 

    } 
</script> 

<form onsubmit="Myfuc()"> 
Mobile : <input type="text" id="mobile" name="mobile" style="width:40px;" maxlength=3> - 
<input type="text" name="mobile1" maxlength=7> 

<input type="submit" value="Click" name="sub" > 

</form> 

一切都在這裏!花了1 hr和imma初學者,不用擔心代碼運作良好:-)

+0

非常感謝!我使用這段代碼並將其格式化到網站中,經過一些工作後,它終於像我想要的那樣工作^^ :))) –

0

您可以使用此reg表達式。我對reg表達式不太滿意,但這可能適用於您的情況。

0\d{2}-\d{7} 

/* start match with 0 
    check for 2 additional digits 
    check for hyphen 
    check for 7 additional digits after hyphen 
*/ 
0

我也很喜歡創建正則表達式;然而,你總是可以這樣做:

var str = document.getElementById('myInput').value, 
numberOnly = str.replace(/-/g, ''), 
errors = [], i; 

if (isNaN(numberOnly)) { 
    errors.push('You must use numbers!'); 
} else if (str.split('-')[0].length !== 3 || str.split('-')[1] !== 7 || numberOnly > 10) { 
    errors.push('Invalid Format!'); 
} else { 
    console.log(numberOnly + ' is ok!'); 
} 

if (errors) { 
    for (i = 0; i < errors.length; i++) { 
     console.log(i + '. ' + errors[i]); 
    } 
} 

它只是測試提交的字符串的每個部分。

首先它檢查看到(在我們刪除連字符後)提交的值實際上是一個數字。其次,它將字符串分成兩半,檢查字符串的開始是否有3個字符,然後如果字符串的末尾有7個字符;最後,它會測試數字是否太大......等等,你甚至可以檢查它是否太小。

如果你找到一個體面的正則表達式,你可以改用switch語句來捕獲錯誤(如果有的話)。

我想可能看起來像[0-9] {3}( - )[0-9] {7}或類似的東西。

-

我一直使用PHP一段時間,所以我忘了,如果「長度」返回計數或字符的實際字節大小,例如「é」是2個字節。

編輯:

要檢查字符串的第一個字符是 「0」,你總是可以做:你問

if (str.length > 0 && str.charAt(0) != 0) { console.log('error'); }