繁体   English   中英

Jquery在html页面上找到一个名字并添加超链接

[英]Jquery to find a name on html page and add hyperlink

这是我的例子:我有一个包含以下内容的网站:

<body>
Jim Nebraska zipcode 65437
Tony lives in California his zipcode is 98708
</body>

我希望能够在页面上搜索邮政编码并用超链接包装它们,例如:

<body>
Jim Nebraska zipcode <a href="/65437.htm">65437</a>
Tony lives in California his zipcode is <a href="/65437.htm">98708</a>
</body>

我可以使用正则表达式选择器来查找字符串然后包装字符串,或用新的超链接替换它吗?

我是Jquery的新手,正在寻找有人指出我正确的方向。

谢谢,

麦克风

你可以在html上使用replace方法:

$('body').html().replace(/\s(65437)\s/g, '<a href=...' + $1 + '</a>');

更新:显然,此示例仅搜索一个特定的邮政编码,但您可以通过使用邮政编码数组并对每个代码执行替换来调整该语句。

这与mamoo和Jim发布的基本相同

稍微修改表达式并使用函数而不是$ 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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM