это в основном то же самое, что и маму, и Джим написал
незначительные модификации выражения и использование функции вместо $ 1
по какой-то причине с firebug я получаю сообщение об ошибке, пытаясь использовать $ 1
var s = "Jim Nebraska zipcode 65437\nTony lives in California his zipcode is 98708";
// var s = "12345 should be but not this 22 or this 9999999 here is a zip 44444, and then some more content and another one 34366 and so on";
var result = s.replace(/(\b\d{5}-\d{4}\b)|(\b\d{5}\b)/g, function (thisMatch) {
return "<a href='/" + thisMatch + ".htm'>";
});
это все равно не будет работать, если оставить только 5-значный адрес улицы, то есть 12345 Main St. будет заканчиваться ссылкой на 12345
ОБНОВЛЕНИЕ: изменено регулярное выражение, чтобы избежать жадного обращения с 9999999
from: /(\d{5}-\d{4})|(\d{5})/g
to: /(\b\d{5}-\d{4}\b)|(\b\d{5}\b)/g
, кажется, оставляет 9999999 в покое, как хотелось бы