E-Scribe News : a programmer’s blog

About Me

PBX My name is Paul Bissex, and e-scribe.com is my consulting business. I build web applications using as much open source software as possible. From September to June I teach web design and other important non-photographic professional skills to photographers. In the '90s I wrote technology commentary and reviews for magazines, newspapers, and web publications, including Wired, Salon.com, FamilyPC, the late lamented Web Review, and the Chicago Tribune. Feel free to email me.

Book Project

I'm co-authoring a book, "Python Web Development with Django", with Jeff Forcier and Wesley Chun. It will be published by Prentice Hall in July 2008, but is available for pre-ordering on Amazon now.

Colophon

This site is built on a fresh trunk checkout of Django, running on Python 2.5.1, served by Apache and mod_python. The database is SQLite. The operating system is FreeBSD, on a VPS hosted at Johncompanies.com. Comment-spam protection by Akismet. Vintage topo imagery from the Maptech archive.

Pile o'Tags

Stuff I Use

Akismet, del.icio.us, Django, dpaste.com, Emacs, FreeBSD, Freenode, jQuery, LaunchBar, MacPorts, Markdown, Mercurial, OS X, Postfix, Python, SQLite, Subversion, TextMate, Trac, Ubuntu Linux, wmii

A Django site.
(Finally!)

Copyright 2008
by Paul Bissex
and E-Scribe New Media

A MAC address regex

Today I worked on a form and script used for registering users on a restricted-access wireless network. Here's a nice compact regex for checking that MAC addresses have been entered in the correct format. (If you're using this in a double-quoted PHP string, escape the "$" with a backslash.)

/^([0-9A-F]{2}:){5}[0-9A-F]{2}$/i

Friday, September 8th, 2006
+
2 comments

Comment from Bjoern, 8 months later

Hi,

great regex! exactly what I was looking for.

It only does not match lower case also the windows output of ipconfig/all (using a dash as delimiter) is not covered

here's my addition: /^([0-9a-fA-F]{2}[:-]){5}[0-9a-fA-F]{2}$/i

Comment from Paul, 8 months later

Thanks for the update, Bjoern. The "/i" modifier at the end already makes it case-insensitive (assuming you're using Perl-compatible regexes), but adding the dash as a separator is a good improvement.

Post a comment

Comments use Markdown syntax. Your comment will not appear until approved, which may take a few hours or more. Spammers will be torpedoed.


(Will not be shared)

(Optional)