2011-07-05 213 views
0

我用JS和php做了一個網站,正如你在下面看到的是我在粘貼bin的代碼,我環顧四周,看到正則表達式,但我不知道如何使用它們或什麼我應該完全使用....但基本上我只想讓用戶輸入北美電話號碼,如果他們輸入任何其他內容,然後給他們一個消息,輸入一個有效的電話號碼...電話號碼格式檢查javascript

以下是我的代碼,以幫助你明白我的have..What我需要什麼我的網站的界面看起來像......

http://pastebin.com/8NwURm0G

個可能的電話號碼,用戶可以輸入是9058554678或4167641689 ...

這是怎樣的名單看起來:

http://dev.icalapp.rogersdigitalmedia.com.rogers-test.com/Edit.php

+1

你想允許虛線,點,空格,括號? 10位數字與7位數字有什麼關係?你想允許領先的1(國家代碼)?你是否想將它限制在區號905和416? –

回答

0

在使用它們之前,應該仔細閱讀正則表達式,因爲它們可能有點棘手和不直觀。

很好的教程:http://www.regular-expressions.info/quickstart.html

根據你列出什麼作爲一個有效的輸入上,你希望看到,如果用戶在10個數字輸入。這可以通過檢查一個字符是否是數字,然後查看是否有10個字符來完成,這將是正則表達式:[0-9] {10}。例如如何使用:

var myRegEx = /[0-9]{10}/; 
var itemsToTest = ["9058554678","abc"]; 

for (var ii=0;ii<itemsToTest.length;ii++) { 
    if (myRegEx.test(itemsToTest[ii])) { 
     alert(itemsToTest[ii] + " is valid!"); 
    } 
} 

測試:http://jsfiddle.net/87ea8/

1

這裏是我周圍鋪設僅匹配10位數字編號NA正則表達式基於關NANP

/(?:(?:\+?1\s*(?:[.-]\s*)?)?(?:(\s*([2-9]1[02-9]|[2-9][02-8]1|[2-9][02-8][02-9])\s*)|([2-9]1[02-9]|[2-9][02-8]1|[2-9][02-8][02-9]))\s*(?:[.-]\s*)?)([2-9]1[02-9]|[2-9][02-9]1|[2-9][02-9]{2})\s*(?:[.-]\s*)?([0-9]{4})/ 
+0

我真的只是將任何不是數字的東西和任何超過3位數的東西進行正則表達式化,然後檢查它是否與美國的每個區域代碼相對應。它會更具可讀性。 – NorthGuard

+0

我如何使用這個表達式? – Bulvak

0
^\d{10}$ 

匹配的10位數字。

^1?\d{10}$ 

匹配10位數字和前面的可選1。

^(?:1-?\s*)?(?:\(?:\d{3}\)|\d{3})\s*-?\d{4}$ 

匹配數字分組像1-444-555-6666(444) 555-6666,以及一些相關的。

0

在Google上進行快速搜索時得到以下結果。你可能想把它和mitchellhislop的答案結合起來。

function isPhoneNumber(s) 
{ 

// Check for correct phone number 
rePhoneNumber = new RegExp(/^\([1-9]\d{2}\)\s?\d{3}\-\d{4}$/); 

if (!rePhoneNumber.test(s)) { 
     alert("Phone Number Must Be Entered As: (555) 555-1234"); 
     return false; 
} 

return true; 
}