2012-08-17 28 views
5

thể trùng lặp:
What is a regular expression for a MAC Address?JQuery/JavaScript MAC Address Validation

Tôi muốn xác nhận một chuỗi để đảm bảo rằng nó là một địa chỉ MAC hợp lệ.

Bất kỳ ý tưởng nào trong Jquery hoặc Javascript?

tôi có như sau:

var mystring= '004F78935612' - This type of MAC Address 
var rege = /([0-9a-fA-F][0-9a-fA-F]){5}([0-9a-fA-F][0-9a-fA-F])/; 
alert(rege.test(mystring)); 

Nhưng nó không phải tất cả mà chính xác.

Tức là. Hộp mô của tôi là một địa chỉ MAC hợp lệ?!?

Cảm ơn!

+0

gần như, chỉ cần làm thế nào để thực hiện nó trong JQuery hoặc JavaScript – Pinch

+0

@Pinch: Các biểu hiện trong câu trả lời rằng sẽ làm việc trong JavaScript cũng . –

Trả lời

10

Lấy biểu thức chính quy từ this question, bạn sẽ thực hiện nó như vậy:

var mystring= 'Hello'; 

var regex = /^([0-9A-F]{2}[:-]){5}([0-9A-F]{2})$/; 

alert(regex.test(mystring)); 

http://jsfiddle.net/s2WDq/

biểu thức chính quy này tìm kiếm cho sự khởi đầu của chuỗi ^, sau đó hai chữ số hexidecimal [0-9A-F]{2}, sau đó một dấu hai chấm hoặc dấu gạch ngang [:-], năm lần trên (...){5}, sau đó là nhóm cuối cùng gồm HAI chữ số thập lục phân [0-9A-F]{2} và cuối cùng là kết thúc của chuỗi $.

Chỉnh sửa: để trả lời nhận xét của bạn, Pinch, định dạng đó không được coi là địa chỉ MAC hợp lệ. Tuy nhiên, nếu bạn muốn hỗ trợ nó, chỉ cần thêm một ? ở đúng nơi:

/^([0-9A-F]{2}[:-]?){5}([0-9A-F]{2})$/ 
// question mark^allows the colon or dash to be optional 
+0

Tôi đánh giá cao công việc của bạn nhưng Địa chỉ MAC trong trường hợp của tôi trông giống như 004F78935612 – Pinch

+0

Mẫu đã sửa đổi cho dữ liệu nhập của bạn có thể là '/^([0-9A-F] {2}) {6} $ /', nhưng điều đó không hợp lệ [ ký hiệu] (https://en.wikipedia.org/wiki/MAC_address). – Bryan

+0

@Pinch xem chỉnh sửa của tôi. hãy nhớ rằng, theo thông số kỹ thuật chính thức, đó KHÔNG phải là địa chỉ MAC hợp lệ. – jbabey