我需要你的帮助。 我正在尝试制作一个用于查找带有> x位数的数字的用户脚本,并将它们转换为链接。 链接的结构类似于 http://domain.com/[number]
到目前为止,我已经设法找到链接,将它们放在一个数组中,但是我一直试图用链接替换文本中的数字。
$("p").each(function(){
var string = $(this).text();
var getNum = string.match(/(\d+)/g);
for(i=0; i<getNum.length; i++){
if(getNum[i].length >= 5){
//for testing the array
$('#result').append(i+" : " + getNum[i]+" ");
};
}
});
任何建议/解决方案?
答案 0 :(得分:2)
$("p").each(function(){
$(this).html($(this).html().replace(/(\d{5,})/g, '<a href="http://domain.com/$1">$1</a>'));
});
修改强>
借助@DavidThomas
更有效地使用jquery库$('p').html(function(index, html){
return html.replace(/(\d+)/g, '<a href="http://domain.com/$1">$1</a>');
})
答案 1 :(得分:2)
更简单的解决方案......
document.body.innerHTML = document.body.innerHTML.replace(/\b(\d{5,})\b/g, '<a href="http://domain.com/$1">$1</a>');
<p> this is a 1234 numbers 123455 test 11234343323</p>
答案 2 :(得分:0)
我相信这就是你的目标。需要使用带有<p>
标记的新标记替换<a>
内的文字。
$("p").each(function(){
var string = $(this).text();
var getNum = string.match(/(\d+)/g);
for(i=0; i<getNum.length; i++){
if(getNum[i].length >= 5){
//for testing the array
$('#result').append(i+" : " + getNum[i]+" ");
// replace with link
string = string.replace(getNum[i],
'<a href="domain.com/'+getNum[i]+'">'
+getNum[i]+'</a>');
};
}
$(this).html(string);
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<p> this is a 1234 numbers 123455 test 11234343323</p>
<div id="result">array= </div>
&#13;